Ios UITableViewCell的背景色

Ios UITableViewCell的背景色,ios,cocoa-touch,uitableview,Ios,Cocoa Touch,Uitableview,我使用的是在IB中设置的基本表视图单元格。我应用的唯一定制是在CellForRowatineXpath中,我只需设置单元格标签的背景颜色,而不是单元格本身的颜色 [[cell textLabel] setBackgroundColor:[UIColor yellowColor]]; 首次绘制表格时,不应用背景色。当我向下滚动时,它会在绘制新单元格时应用于这些单元格。类似地,如果我向上滚动,顶部单元格将使用正确的背景颜色重新绘制 这背后的解释是什么 编辑-这是我的cellForRow

我使用的是在IB中设置的基本表视图单元格。我应用的唯一定制是在CellForRowatineXpath中,我只需设置单元格标签的背景颜色,而不是单元格本身的颜色

    [[cell textLabel] setBackgroundColor:[UIColor yellowColor]];
首次绘制表格时,不应用背景色。当我向下滚动时,它会在绘制新单元格时应用于这些单元格。类似地,如果我向上滚动,顶部单元格将使用正确的背景颜色重新绘制

这背后的解释是什么

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

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

你必须使用

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
从文档中:

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

你必须使用

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
从文档中:

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


你能发布你所有的tableView:cellForRowAtIndexPath:method吗?将帮助我们查明问题所在。此外,您发布了两次相同的图像。谢谢Eli-我已更正此问题并添加了您要求的内容。为什么使用ItemCell而不是UITableViewCell*cell?ItemCell用于其他自定义。为了演示的目的,我把它去掉了。你能发布你所有的tableView:cellForRowAtIndexPath:method吗?将帮助我们查明问题所在。此外,您发布了两次相同的图像。谢谢Eli-我已更正此问题并添加了您要求的内容。为什么使用ItemCell而不是UITableViewCell*cell?ItemCell用于其他自定义。为了演示的目的,我把它删掉了。谢谢-我搜索过willDisplayCell后,发现这个解释很有用。谢谢-我搜索过willDisplayCell后,发现这个解释也很有用