UITableViewCell 的选择颜色

Posted

技术标签:

【中文标题】UITableViewCell 的选择颜色【英文标题】:selection color for a UITableViewCell 【发布时间】:2009-06-17 01:14:30 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

阅读this article了解更多详情。

【讨论】:

这实际上就是我在做的事情,但是您的链接仍然为我指明了正确的方向。我需要更改 UILabel 的 highlightTextColor。 当您谈到“自己的绘图”时,我立即想到了子类化。我的错。很高兴您找到解决方案【参考方案2】:

在您的 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;
   //-------------------------------------------------------------------------

【讨论】:

【参考方案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];

【讨论】:

以上是关于UITableViewCell 的选择颜色的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 的选择颜色

UITableViewCell 在取消选择时选择了阴影颜色

根据选择更改 UITableViewCell 中按钮的背景颜色

选择时如何更改 UITableViewCell 的颜色?

UITableViewCell 选择样式更改所有子视图的背景颜色

突出显示/选择时的 UITableViewCell 背景颜色