我有UITableViewCell
个单元格style = UITableViewCellStyleValue1
(此格式用于我在项目中使用的所有其他view controllers
)。我根据其他SO帖子的建议,仔细检查了我的故事板中的cell identifiers
。我仍然以detailTextLabel
为零。还有别的我做错了吗?我观察到单元格总是被重用,即如果从不执行分配语句。那么,我如何获得UITableViewCell
对象的样式来验证重用的单元格是否遵循相同的样式?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellForDevice";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
}
NSLog(@"reuse ID : %@",cell.reuseIdentifier);
// Configure the cell...
NSArray* row = [self.listOfItems objectAtIndex:indexPath.row];
NSString* str = [row objectAtIndex:0];
NSString* status = [row objectAtIndex:1];
cell.textLabel.text = str;
if(cell.detailTextLabel == nil)
NSLog(@"detailTextLabel nil");//didn't expect this would execute
cell.detailTextLabel.text = status;
cell.detailTextLabel.backgroundColor = [UIColor greenColor];
NSLog(@"status %@ ",status);
return cell;
}
答案 0 :(得分:0)
如果在故事板文件中将单元格定义为表格视图的原型单元格,
dequeueReusableCellWithIdentifier
始终根据需要实例化单元格
故事板文件。特别是,dequeueReusableCellWithIdentifier
永远不会返回nil
。
因此,您应该检查原型单元格的属性,然后删除
if (cell == nil)
部分来自您的代码。