UITableViewCell的背景颜色

时间:2012-02-21 22:05:53

标签: ios cocoa-touch uitableview

我正在使用IB中设置的基本表格视图单元格。我应用的唯一自定义是在cellForRowAtIndexPath中,我只需设置单元格标签的背景颜色(单元格本身的颜色)。

    [[cell textLabel] setBackgroundColor:[UIColor yellowColor]];

首次绘制表格时,不会应用背景颜色。当我向下滚动时, 将在绘制新单元格时应用它们。同样,如果我向上滚动,顶部单元格将使用正确的背景颜色重新绘制。

这背后的解释是什么?

enter image description here enter image description here

编辑 - 这是我的cellForRowAtIndexPath,以及IB中的设置:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
ItemCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ItemCell2"];
[[cell textLabel] setBackgroundColor:[UIColor yellowColor]];            
return cell;

}

enter image description here

1 个答案:

答案 0 :(得分:5)

你必须使用

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

来自文档:

  

表视图在使用单元格绘制行之前将此消息发送到其委托,从而允许委托在显示之前自定义单元格对象。此方法使代理有机会覆盖表视图前面设置的基于状态的属性,例如选择和背景颜色。