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



我正在从UITableViewController中的nib文件加载UITableView单元格,并且我在界面生成器中设置的背景颜色不会显示。为什么不呢?

您应该使用tableView:willDisplayCell:forRowAtIndexPath:来设置背景颜色,正如Apple在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;
    }
}

相关内容

最新更新