1、修改UITableViewCell的backgroundColor
错误方式:在cell创建的时候直接设置backgroundColor,不能起到应有的效果。
错误原因:有一个2009年或者2010的WWDC视频提到了这个问题。tableview会调整背景来管理cells的选择状态,这就是为什么你能且只能在willDisplayCell这个方法里面修改它的实现的原因。
正确方式:在如下方法中设置
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor =[UIColor redColor];
}
注:同理可在这里自定义selectedBackgroundView
cell.selectedBackgroundView.backgroundColor = [UIColorredColor];
若selectedBackgroundView为nil,则需要先创建。
2、cell.contentView.backgroundColor
cell.contentView是cell的subview,一般设置如下:
cell.contentView.backgroundColor为[UIColor clearColor]
3、cell.backgroundView一般不需重新赋值,否则在编辑模式可能会出现意想不到的问题,比如删除键不能正常显示。