这里有点奇怪的问题:
我有一个UITableViewCell
带有一堆标签和一个图像视图的自定义笔尖。我将文件所有者设置为UITableViewDelegate
/ Datasource
,我在 nib 文件中设置了自定义类,并将其加载到我的 VC 中,如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"BuildCell";
BuildCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle]loadNibNamed:@"BuildCell" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}
...
return cell
}
奇怪的是,每当我将 cellIdentifier 设置为与故事板中的 ID 不同的 ID 时,一切都会正常加载(但这是一个问题,从那时起我无法让 segue 正常工作)。当我将单元格标识符设置为匹配时,只有一些属性可以正常工作。这怎么可能??
这是完整的实现cellForRowAtIndexPath
:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"BuildCell";
BuildCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle]loadNibNamed:@"BuildCell" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}
Build *build = [self.builds objectAtIndex:indexPath.row];
//cell.school.text = build.school;
cell.device.text = build.sdk;
cell.buildType.text = build.config;
cell.creator.text = [NSString stringWithFormat:@"By %@", build.creator];
cell.time.text = build.dateCreated;
switch (build.buildStatus) {
case kSuccess:
cell.imageView.image = [UIImage imageNamed:@"greensmall.png"];
break;
case kInProgress:
cell.imageView.image = [UIImage imageNamed:@"yellowsmall.png"];
break;
default:
cell.imageView.image = [UIImage imageNamed:@"redsmall.png"];
break;
}
return cell;
}
唯一正确加载的部分是 imageView。没有任何标签出现。有任何想法吗?