Iphone UITableViewCell的选择颜色

Iphone UITableViewCell的选择颜色,iphone,cocoa-touch,iphone-sdk-3.0,uitableview,Iphone,Cocoa Touch,Iphone Sdk 3.0,Uitableview,如果我有一个自定义的uitableview单元格,它不使用单元格内置的textLabel,而是自己绘制,我如何在选择时更改contentView的外观,就像它自动更改默认文本一样(可通过设置selectedTextColor:进行自定义) 如果我更改了tableView:willSelectRowAtIndexPath:,那么它只会在蓝色选择背景打开后更新,而不会像我所希望的那样在设置动画时更新。只是不要将UITableViewCell子类化并使用默认行为。 您可以完全自定义单元格,而无需任何子

如果我有一个自定义的
uitableview单元格
,它不使用单元格内置的
textLabel
,而是自己绘制,我如何在选择时更改
contentView
的外观,就像它自动更改默认文本一样(可通过设置
selectedTextColor:
进行自定义)


如果我更改了
tableView:willSelectRowAtIndexPath:
,那么它只会在蓝色选择背景打开后更新,而不会像我所希望的那样在设置动画时更新。

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


有关详细信息,请阅读。

如果您对UITableViewCell进行了子类化,则可以通过覆盖以下内容来自定义单元格的元素:

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

    [super setHighlighted:highlighted animated:animated];
}

将此代码添加到tableview单元格ForRowAtIndexPath方法中,只需更改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;
   //-------------------------------------------------------------------------

事实上我就是这么做的,但你的链接仍然为我指明了正确的方向。我需要更改UILabel的highlightedTextColor。当您谈到“自己的绘图”时,我立即想到了子类化。我的错。很高兴你找到了解决办法