2011-04-04 73 views
2

我希望我的表细胞能快速加载时,不透明= YES不妙,所以我设置我的手机里面我所有的UILabels是不透明= YES;这很好,因为我也将背景设置为白色,看起来很正常。的UITableViewCell标签点击细胞

问题是当您单击该单元格,因为这些标签的背景是白色的,蓝色的颜色选择刻意突出单元格时看起来很糟糕。有没有解决这个问题的方法?将这些单元格的背景颜色设置为clearColor是否会破坏设置不透明的目的?

+0

有你使用的厦门国际银行设立的单元格或你使用CoreGraphics中手动绘制呢? – GorillaPatch 2011-04-04 18:29:48

+0

它是手动绘制的。 – 2011-04-04 20:57:14

回答

3

有一些事情你必须考虑。首先,将标签设置为不透明无疑是获得良好滚动性能的正确方法。

正确的方法做,这是声明的UITableViewCell子类,并覆盖setBackgroundColor方法这样并转发的背景色,以在小区的每个元素:

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

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

+0

也可以覆盖setSelected:方法并设置标签的颜色,当选择时清除,不清除时不清除;) – 2011-04-04 18:32:44

+0

我不建议这样做。我的解决方案来自WWDC视频,并且是苹果的方式。 – GorillaPatch 2011-04-04 18:33:36

+0

这工作完美!非常感谢! – 2011-04-04 21:11:30