UITableViewCell上的textLabel.backgroundColor不起作用

时间:2010-04-09 20:04:18

标签: cocoa-touch uitableview

我正在尝试设置我的UITableViewCells的标签backgroundColor,它什么都没做。我想知道是否还有另一种做法,所以我在问!

我试过了:

    cell.textLabel.backgroundColor = [UIColor redColor];
cell.backgroundColor = [UIColor redColor];

它不起作用,其他什么?

谢谢!

2 个答案:

答案 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];