从笔尖加载的UITableView单元格不显示背景颜色

时间:2013-02-11 00:26:05

标签: ios6 uitableview

我正在从UITableViewController中的nib文件加载UITableView单元格,并且没有显示我在Interface Builder中设置的背景颜色。为什么不呢?

1 个答案:

答案 0 :(得分:2)

您应该使用tableView:willDisplayCell:forRowAtIndexPath:来设置背景颜色,正如Apple在Table View Programming Guide for iOS中建议的那样:

  

表视图在绘制行之前向其委托发送tableView:willDisplayCell:forRowAtIndexPath:消息。如果委托选择实现此方法,则可以在显示单元对象之前对其进行最后更改。使用此方法,委托应仅更改表视图先前设置的基于状态的属性,例如选择和背景颜色,而不是内容。

此代码执行交替的“斑马条纹”效果:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row % 2 == 0) {
        UIColor *altCellColor = [UIColor colorWithWhite:0.7 alpha:0.1];
        cell.backgroundColor = altCellColor;
    }
}