UITableView从笔尖加载的单元格不显示背景颜色
问题描述:
我从UITableViewController中的nib文件加载UITableView单元,并且未在界面生成器中设置背景颜色。为什么不?UITableView从笔尖加载的单元格不显示背景颜色
答
您应该使用tableView:willDisplayCell:forRowAtIndexPath:
来设置背景颜色,苹果建议在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;
}
}
只有弹簧想到的事情可能是它的子视图是不透明的?我之前犯过这个错误。 – rsswtmr 2013-02-11 00:47:21
我查过了,他们没有。我继续前进,使笔尖的单元格背景颜色变得清晰,并改变了桌面视图的背景颜色,并且工作正常,但我确实希望能够拥有不同颜色的单元格。这种解决方案只有在它们全都具有相同的颜色时才有效......还有什么别的想法? – Nirma 2013-02-11 15:34:38
尝试将视图添加到所有其他设置下的单元格中,并在其中设置背景颜色。这样你就可以拥有任何你想要的颜色。 – rsswtmr 2013-02-11 21:57:21