UITableViewCell的选择颜色

时间:2009-06-17 01:14:31

标签: iphone cocoa-touch iphone-sdk-3.0 uitableview

如果我的自定义UITableViewCell不使用内置于单元格中的textLabel,而是使用自己的绘图,如何更改contentView的外观选择,就像它自动为默认文本(通过设置selectedTextColor:自定义)?

如果我更改tableView:willSelectRowAtIndexPath:,那么它只会在蓝色选择背景启动后更新,但不会在它动画时更新,就像我想要的那样。

3 个答案:

答案 0 :(得分:6)

只是不要将UITableViewCell子类化并使用默认行为。 您可以完全自定义单元格而无需任何子类化。

阅读this article了解详情。

答案 1 :(得分:5)

在tableview cellForRowAtIndexPath方法中添加此代码,只需更改UITableViewCell选择样式的预期颜色。

   //-------------------------------------------------------------------------
   //background selected view 
   UIView *viwSelectedBackgroundView=[[UIView alloc]init];
   viwSelectedBackgroundView.backgroundColor=[UIColor colorWithRed:124.0/255.0 green:202.0/255.0 blue:227.0/255.0 alpha:1.0];
   cell.selectedBackgroundView=viwSelectedBackgroundView;
   //-------------------------------------------------------------------------

答案 2 :(得分:3)

如果您已经为UITableViewCell创建了子类,那么您可以通过覆盖以下内容来自定义单元格的元素:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
    if(highlighted) {
        self.backgroundColor = [UIColor redColor];
    } else {
        self.backgroundColor = [UIColor clearColor];
    }

    [super setHighlighted:highlighted animated:animated];
}