我正在努力避免向我的iOS项目添加任何与视觉设置有关的代码,因为这是Interface Builder应该为您精简的。
所以我试图在IB中设置原型单元,然后调用:
TableCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"TableCell"];
问题是如果我在IB中更改单元格的背景颜色,当我运行我的应用程序时它仍然是白色。我可以预设标签的颜色,但不能预设表格单元格中的背景颜色属性。
作为一个补充说明,我可以看到在破坏点之后,单元格内的backgroundView的UIView为空,并在变量初始化之后检查它。
更新 我的印象是IB中的背景颜色选项基本没用?我宁愿不相信。
答案 0 :(得分:3)
不幸的是,你无法做到这一点。
在tableView:willDisplayCell:forRowAtIndexPath:
来自UITableViewCell
的文档:
注意:如果要更改单元格的背景颜色(通过UIView声明的backgroundColor属性设置单元格的背景颜色),则必须在tableView中执行此操作:willDisplayCell:forRowAtIndexPath:委托方法和不在tableView:cellForRowAtIndexPath:数据源。组样式表视图中单元格背景颜色的更改在iOS 3.0中具有与以前版本的操作系统不同的效果。它现在影响圆角矩形内的区域而不是它外面的区域。
答案 1 :(得分:0)
在界面构建器中,将视图添加为单元格的子视图,这将是您的背景视图。然后,您可以将所有标签或其他任何内容作为子视图添加到该视图。根据需要更改查看背景颜色。
答案 2 :(得分:0)
我认为这可能是IB中的一个错误。您可以向控制器底部的该栏添加视图,然后将这些视图连接到单元格的backgroundView和selectedBackgroundView属性。但是,backgroundView的颜色不起作用,而selectedBackgroundView的颜色确实可以正常工作。如果您将代码中的背景视图添加到自定义表格视图单元格并为其提供backgroundColor,那么它确实有效。