2

我试图避免将任何与视觉设置有关的代码添加到我的 iOS 项目中,因为这是 Interface Builder 应该为您简化的。

所以我试图在 IB 中设置原型单元,然后调用:

TableCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"TableCell"];

问题是如果我更改 IB 中单元格的背景颜色,当我运行我的应用程序时它仍然是白色的。我可以很好地预设标签的颜色,但不能预设表格单元格中的背景颜色属性。

作为附加说明,我可以看到作为单元格内的 backgroundView 的 UIView 在断点并在初始化后检查变量后为空。

更新 我的印象是 IB 中的背景颜色选项基本上没用?我宁愿不相信。

4

3 回答 3

5

不幸的是,你不能这样做。

更改单元格的背景颜色tableView:willDisplayCell:forRowAtIndexPath:

从以下文档UITableViewCell

注意:如果要更改单元格的背景颜色(通过 UIView 声明的 backgroundColor 属性设置单元格的背景颜色),您必须在委托的 tableView:willDisplayCell:forRowAtIndexPath: 方法中进行,而不是在 tableView :cellForRowAtIndexPath: 数据源的。更改组样式表视图中单元格的背景颜色在 iOS 3.0 中的效果与以前版本的操作系统不同。它现在影响圆角矩形内部的区域,而不是它外部的区域。

于 2013-04-03T14:52:00.487 回答
0

在界面生成器中,添加一个视图作为单元格的子视图,这将是您的背景视图。然后,您可以将所有标签或其他任何内容作为子视图添加到该视图。根据需要更改视图背景颜色。

于 2013-04-03T14:59:36.660 回答
0

我认为这可能是 IB 中的一个错误。您可以将视图添加到控制器底部的该栏,然后将这些视图连接到单元格的 backgroundView 和 selectedBackgroundView 属性。但是,backgroundView 的颜色不起作用,而 selectedBackgroundView 的颜色却可以正常工作。如果您在代码中将背景视图添加到自定义表格视图单元格并给它一个背景颜色,那确实有效。

于 2013-04-03T16:03:50.190 回答