单击单元格时,UITableViewCell标签opaque = YES看起来很糟糕

时间:2011-04-04 18:22:30

标签: iphone uitableview uilabel

我希望我的表格单元格加载速度快,所以我将单元格内的所有UILabel设置为不透明= YES;这很好,因为我还将背景设置为白色,看起来很正常。

单击单元格时出现问题,因为这些标签的背景为白色,尝试突出显示单元格时,蓝色选择的颜色看起来非常糟糕。有没有解决这个问题?将这些单元格的背景颜色设置为clearColor只会破坏设置不透明的目的吗?

1 个答案:

答案 0 :(得分:3)

你需要考虑一些事情。首先,将标签设置为不透明绝对是获得良好滚动性能的正确方法。

执行此操作的正确方法是声明UITableViewCell的子类并覆盖此类的setBackgroundColor方法,并将背景颜色转发到单元格的每个元素:

- (void) setBackgroundColor:(UIColor *)color {
    [super setBackgroundColor:color];
    [titleLabel setBackgroundColor:color];
    [imageView setBackgroundColor:color];
    [timeLabel setBackgroundColor:color];
}

我使用它作为文件的XIB的所有者,其中定义了tableview单元格,并将UI元素连接到此自定义子类中的出口。