细胞背景和配件

时间:2011-03-19 10:05:10

标签: iphone sdk uitableview accessoryview

我正在尝试设置UITableViewCells的单元格背景,但我正在努力处理UIAccessoryView的背景颜色。它不会改变。

任何人都可以帮助我使UIAccessoryView的背景颜色透明(或实际上是任何其他颜色)吗?

这是我的代码

cell.textLabel.backgroundColor = [UIColor clearColor];
cell.accessoryView.backgroundColor = [UIColor clearColor];
cell.detailTextLabel.backgroundColor = [UIColor clearColor];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

if(indexPath.row % 2) {
     cell.contentView.backgroundColor = [UIColor clearColor];
}
else {
    cell.contentView.backgroundColor = [UIColor redColor];
}

以下是说明问题的图片

UIAccessoryView does not change background color.

2 个答案:

答案 0 :(得分:46)

您需要设置UITableViewCell的backgroundView属性。例如:

UIView* myBackgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
myBackgroundView.backgroundColor = [UIColor redColor];
myCell.backgroundView = myBackgroundView;

如果你想要一些更加花哨的东西,比如红色渐变背景,你可以实现一个UIView的子类,它在drawRect:中绘制一个渐变,并将它用作backgroundView。

如果您想要自定义查找选定的表格单元格,也可以设置selectedBackgroundView属性。

答案 1 :(得分:4)

在功能中

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

使用以下代码

cell.contentView.superview.backgroundColor = [UIColor redColor];

reference for more details