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。当您谈到“自己的绘图”时,我立即想到了子类化。我的错。很高兴你找到了解决办法