我正在从UITableViewController中的nib文件加载UITableView单元格,并且没有显示我在Interface Builder中设置的背景颜色。为什么不呢?
答案 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;
}
}