fet*_*zig 30 cocoa-touch interface-builder uitableview ios
我创建了一堆单元格,我在表格视图中重复使用.所有这些细胞UILabel内部都有不同的s和一些UIImageViews(没有任何东西覆盖整个细胞).
在IB中设置背景颜色没有效果(总是白色或透明,不能说明其中哪一个).但是,如果按下Command-R(模拟界面),单元格在模拟器中具有正确的背景颜色.
我尝试将其设置为tableView:cellForRowAtIndexPath:但它不会像我想的那样工作.
这样做的诀窍:
cell.contentView.backgroundColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)
但这些没有效果(即使我设置cell.contentView.backgroundColor为clearColor):
cell.backgroundView.backgroundColor = [UIColor redColor];
cell.backgroundColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)
我在IB中设置了所有布局/字体/背景内容.知道为什么这不适用于这种情况?
为什么我需要修改contentView's backgroundColor而不是backgroundView's?
这似乎是一个普遍的问题.有人可以指出我正确的方向(最终)了解如何在表格视图单元格中处理背景颜色.
小智 53
要更改单元格的背景颜色,必须在willDisplayCell:forRowAtIndexPath:方法中执行此操作.这在概述底部附近的UITableViewCell文档中提到.所以你需要:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor redColor];
}
Run Code Online (Sandbox Code Playgroud)
contentView只是推荐自定义控件的子视图,以便在进行表格编辑时正确布局单元格.
有一个更简单的解决方案:当您UITableViewCell在 Interface Builder 中创建一个时,只需拖放一个附加项UIView,使其覆盖UITableViewCell您在 IB 中创建的整个内容。将您的附加 UI 元素放置在该附加UIView. 您可以将此额外设置UIView为您喜欢的任何背景。
StackOverflow 上有很多答案建议您UITableViewCell使用如下代码行来更改背景颜色:
cell.contentView.backgroundColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)
如果您通过稍微调整 的框架大小来向单元格添加投影contentView,您可能会发现这条线会更改单元格的背景颜色和投影区域的颜色。
| 归档时间: |
|
| 查看次数: |
11273 次 |
| 最近记录: |