UITableView 选择单元格时所有组件都更改了背景颜色

Posted

技术标签:

【中文标题】UITableView 选择单元格时所有组件都更改了背景颜色【英文标题】:UITableView all components are changed background color when selecting cell 【发布时间】:2016-10-19 09:01:18 【问题描述】:

我正在自定义 tableview 的单元格。该单元格包括 2 个按钮(一个是红色的,另一个是蓝色的)。但是当我选择单元格时,2 个按钮的背景颜色更改为突出显示的单元格颜色。我希望它们在单元格突出显示时保持颜色。我的解决方案是捕获突出显示的tableview 代表并更改按钮的背景。

谁能给我另一种解决方案?

谢谢

【问题讨论】:

用您在问题中提出的问题检查我的回答。 【参考方案1】:

您必须在 UITableViewCell 子类中覆盖 setHighlightedsetSelected

目标 C

-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated

    UIColor *someViewColor = self.someView.backgroundColor;
    [super setHighlighted:highlighted animated:animated];
    self.someView.backgroundColor = someViewColor;


-(void)setSelected:(BOOL)selected animated:(BOOL)animated

    UIColor *someViewColor = self.someView.backgroundColor;
    [super setSelected:selected animated:animated];
    self.someView.backgroundColor = someViewColor;

斯威夫特

override func setHighlighted(highlighted: Bool, animated: Bool) 

    let someViewColor = someView.backgroundColor        
    super.setHighlighted(highlighted, animated: animated)
    someView.backgroundColor = someViewColor


override func setSelected(selected: Bool, animated: Bool) 

    let someViewColor = someView.backgroundColor        
    super.setSelected(selected, animated: animated)
    someView.backgroundColor = someViewColor

【讨论】:

感谢您的快速答复。太棒了。

以上是关于UITableView 选择单元格时所有组件都更改了背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

选择单元格时更改图像

Swift:点击一个单元格时更改所有 UITableViewCells 的文本颜色

为 iOS 选择 TableView 单元格时视图已更改

在选择表格视图单元格时更改按钮的标题

在uitableview中选择时如何更改自定义单元格图像和标签字体颜色?

UITableView:滑动表格视图单元格时如何停止选择