UITableViewCell 背景颜色?

3

我在谷歌上搜索了很多,但是找不到正确的解决方案。我有一个UITableView,想要更改单元格背景颜色,我已经找到了一些解决方案,但仅涉及具有内容或数据的单元格。

我还需要为那些未使用的单元格着色。

2个回答

6
尝试设置tableView本身的背景颜色。底部的“空单元格”实际上并不是单元格,而只是画在背景上的分隔线。

啊,那就解释了为什么它们不受影响。cell.contentView.backgroundColor = [UIColor blueColor]; 可以用,但是不能填充空白部分,而 cell.backgroundColor = [UIColor blueColor]; 则不行。还有其他想法吗? - Josh Kahane
谢谢。这很有道理,而且是一个非常容易解决的问题。我曾经为这个问题苦苦挣扎了一段时间。 - gurooj
@Josh,你需要使用tableView.backgroundColor = [UIColor blueColor]; 听起来你仍在尝试设置单元格背景,而不是整个表格的背景。 - Nick Lockwood
是的,困倦的自己错过了那个,但我在上面评论了关于tableview颜色的问题,请看看你的想法。 - Josh Kahane
结果发现,我的代码有点问题,我在错误的位置设置了tableview的背景颜色,但现在它可以工作了,谢谢! - Josh Kahane
显示剩余2条评论

1

尽管UITableViewCell继承自UIView,但更改单元格本身的backgroundColor属性不会产生任何效果。您需要更改单元格的contentView的背景颜色,例如

cell.contentView.backgroundColor = [UIColor greenColor];

这是因为UITableViewCell的子视图实际上是单元格的contentView的子视图,因为contentView知道如何调整其子视图的大小,如果将单元格放入编辑模式;单元格本身不知道如何做到这一点。

我不确定您所说的未使用的单元格是什么意思。如果告诉tableView有10个单元格,但只为其中8个提供内容,则仍将拥有10个绿色单元格,如果这是您所说的“未使用”,那么就是这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接