我正在尝试设置我的UITableViewCells的标签backgroundColor,它什么都没做。我想知道是否还有另一种做法,所以我在问!
我试过了:
cell.textLabel.backgroundColor = [UIColor redColor];
cell.backgroundColor = [UIColor redColor];
它不起作用,其他什么?
谢谢!
答案 0 :(得分:44)
我假设你在cellForRowAtIndexPath中尝试这个。
根据UITableViewCell class reference:
注意:如果要更改 细胞的背景颜色(通过设置 通过电池的背景颜色 backgroundColor属性声明 UIView)你必须在 的tableView:willDisplayCell:forRowAtIndexPath: 代表的方法而不是 tableView:cellForRowAtIndexPath:of 数据源。
这样做:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor redColor]; //must do here in willDisplayCell
cell.textLabel.backgroundColor = [UIColor redColor]; //must do here in willDisplayCell
cell.textLabel.textColor = [UIColor yellowColor]; //can do here OR in cellForRowAtIndexPath
}
如果您需要更精细地控制单元格显示,一种简单的方法是在IB中设计它并从cellForRowAtIndexPath中的nib加载它。请参阅“表视图编程指南”中this page上的“从Nib文件加载自定义表 - 查看单元格”部分。
答案 1 :(得分:0)
IOS 9.3更新。这实际上在使用IOS 9.3的cellForRowAtIndexPath中工作正常。另请注意:要更改整个单元格的颜色,请使用:
cell.contentView.backgroundColor = [UIColor redColor];