在UITableViewCell中更改BackgroundColor对iOS 7.1没有影响

时间:2014-06-23 07:53:21

标签: objective-c uitableview ios7 uistoryboard uicolor

我目前正在开发一个源自主 - 详细模板的小型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];
}

仍然,渲染单元格没有变化。我无可奈何地绝望,因为在我将测试版发送给我的测试人员之前,这是最后一个功能缺失...

我真的很感激任何额外的提示。

来自德国的致敬


编辑:奇怪的是,我甚至无法通过故事板中原型单元的设置来改变单元格的颜色。?

2 个答案:

答案 0 :(得分:1)

将背景设置为contentView而不是:

cell.contentView.backgroundColor = [UIColor redColor];

来自UITableViewCell Class Reference

  

UITableViewCell对象的内容视图是单元格显示的内容的默认超级视图。如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图中,以便在单元格进入和退出编辑模式时将它们正确定位。

答案 1 :(得分:1)

所以我终于明白了:

似乎Xcode搞砸了缓存/构建过程。在我清空DerivedData文件夹之后,所有内容都像魅力一样:

rm -rf ~/library/Developer/Xcode/DerivedData/*

我之前从未遇到过这个问题 - 甚至没有听说过这个问题。现在,我先确保先清除这个文件夹,然后再浪费时间调查一个错误的问题。

我很感激你们投入的所有时间来帮助我!