为什么我们需要在willDisplayCell中更改单元格的背景颜色?

时间:2012-11-29 07:49:43

标签: objective-c ios uitableview

  

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

我注意到在cellForRowAtIndexPath中更改单元格的背景颜色对普通样式单元格没有任何作用,尽管它在组单元格上工作正常。

任何人都可以解释设计决定吗?

同样,更改cell.contentView的背景颜色也可以。

注意:我知道简单地放置UIView并在我们的自定义TableView Cell上设置背景的工作。我问为什么而不是问如何解决它。

1 个答案:

答案 0 :(得分:0)

似乎苹果以表格的背景覆盖背景。

要真正改变背景,我们需要在覆盖后执行此操作,这意味着:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }

我尝试过它。