2013-02-11 54 views
2

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

+1

只有弹簧想到的事情可能是它的子视图是不透明的?我之前犯过这个错误。 – rsswtmr 2013-02-11 00:47:21

+0

我查过了,他们没有。我继续前进,使笔尖的单元格背景颜色变得清晰,并改变了桌面视图的背景颜色,并且工作正常,但我确实希望能够拥有不同颜色的单元格。这种解决方案只有在它们全都具有相同的颜色时才有效......还有什么别的想法? – Nirma 2013-02-11 15:34:38

+0

尝试将视图添加到所有其他设置下的单元格中,并在其中设置背景颜色。这样你就可以拥有任何你想要的颜色。 – rsswtmr 2013-02-11 21:57:21

回答

2

您应该使用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; 
    } 
}