从笔尖加载的 UITableView 单元格不显示背景颜色

Posted

技术标签:

【中文标题】从笔尖加载的 UITableView 单元格不显示背景颜色【英文标题】:UITableView Cell loaded from nib is not displaying background color 【发布时间】:2013-02-11 00:26:04 【问题描述】:

我正在从 UITableViewController 中的 nib 文件加载 UITableView 单元格,并且我在 Interface Builder 中设置的背景颜色未显示。为什么不呢?

【问题讨论】:

唯一想到的可能是它的子视图是不透明的?我以前犯过这个错误。 我检查过,但没有。我继续在笔尖中使单元格背景颜色清晰,并更改了表格视图的背景颜色,这很有效,但我真的希望能够拥有不同颜色的单元格。只有当它们显然都具有相同的颜色时,该解决方案才有效......还有什么想到的吗? 尝试在所有其他单元格下添加一个视图,并在那里设置背景颜色。这样你就可以为每个单元格设置任何你想要的颜色。 【参考方案1】:

您应该使用tableView:willDisplayCell:forRowAtIndexPath: 设置背景颜色,正如Apple 在Table View Programming Guide for ios 中推荐的那样:

表格视图在绘制一行之前向其委托发送tableView:willDisplayCell:forRowAtIndexPath: 消息。如果委托选择实现此方法,它可以在单元格对象显示之前对其进行最后一分钟的更改。使用此方法,委托应仅更改先前由表视图设置的基于状态的属性,例如选择和背景颜色,而不是内容。

这段代码会产生交替的“斑马条纹”效果:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
    if (indexPath.row % 2 == 0) 
        UIColor *altCellColor = [UIColor colorWithWhite:0.7 alpha:0.1];
        cell.backgroundColor = altCellColor;
    

【讨论】:

以上是关于从笔尖加载的 UITableView 单元格不显示背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 的 scrollToRowAtIndexPath 在单元格不显示时不起作用?

从 Firebase Swift 加载后单元格不显示图像

UITableView 自定义单元格不显示数据

UITableView 单元格不显示正确的详细信息

UITableView 不重用单元格?

滚动时如何使uitableview单元格不改变?