首先,请不要告诉我这是重复的。我知道这个问题已被多次询问和回答,但即使在阅读了其他人的解决方案之后,我似乎仍然无法让我的代码正常工作。
我的 UITableViewCell 包含 UILabel 子视图时遇到问题。UILabel 有时不会出现在某些单元格中,直到我滚动离开这些单元格并返回它们。这是我用来自定义单元格的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *label;
if (cell == nil) {
// cell is nil, create it
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 33)];
label.tag = 888;
} else {
label = (UILabel*)[cell.contentView viewWithTag:888];
[label removeFromSuperview];
}
label.text = @"Label Text";
label.backgroundColor = [UIColor clearColor];
[label sizeToFit];
label.center = CGPointMake(cell.contentView.frame.size.width-label.frame.size.width/2-20, cell.contentView.frame.size.height/2);
[cell.contentView addSubview:label];
// customize cell text label
cell.textLabel.text = @"Cell Text";
cell.textLabel.textColor = [UIColor darkGrayColor];
return cell;
}
当 dequeueReusableCellWithIdentifier:CellIdentifier 返回非 nil 值时,标签似乎正确显示,但如果返回值为 nil 并且必须实例化新单元格,则标签不会显示。
如果有人知道为什么会发生这种情况,我们将不胜感激。