我目前正在开发一个源自主 - 详细模板的小型iOS应用程序 - 大部分布局工作都是在Xcode的故事板中完成的。
但是,现在我正在尝试根据其内容更改UITableViewCell的背景颜色。
我最初的想法是:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor redColor];
}
但这对模拟器中渲染的单元格没有影响。所以我一直在寻找不同的方法,并尝试了其中几种方法。例如(各种口味):
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.textLabel.backgroundColor = [UIColor clearColor];
UIView* bgview = [[UIView alloc] initWithFrame:cell.bounds];
bgview.backgroundColor = [UIColor greenColor];
[cell setBackgroundView:bgview];
}
仍然,渲染单元格没有变化。我无可奈何地绝望,因为在我将测试版发送给我的测试人员之前,这是最后一个功能缺失...
我真的很感激任何额外的提示。
来自德国的致敬
编辑:奇怪的是,我甚至无法通过故事板中原型单元的设置来改变单元格的颜色。?
答案 0 :(得分:1)
将背景设置为contentView
而不是:
cell.contentView.backgroundColor = [UIColor redColor];
来自UITableViewCell Class Reference:
UITableViewCell
对象的内容视图是单元格显示的内容的默认超级视图。如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图中,以便在单元格进入和退出编辑模式时将它们正确定位。
答案 1 :(得分:1)
所以我终于明白了:
似乎Xcode搞砸了缓存/构建过程。在我清空DerivedData文件夹之后,所有内容都像魅力一样:
rm -rf ~/library/Developer/Xcode/DerivedData/*
我之前从未遇到过这个问题 - 甚至没有听说过这个问题。现在,我先确保先清除这个文件夹,然后再浪费时间调查一个错误的问题。
我很感激你们投入的所有时间来帮助我!