在uitableviewcell背景颜色上快速更改标签
Posted
技术标签:
【中文标题】在uitableviewcell背景颜色上快速更改标签【英文标题】:swift change label on uitableviewcell background color 【发布时间】:2016-08-25 07:35:09 【问题描述】:我有带有自定义单元格的 UItablview 我需要在选择此行时更改标签背景颜色,但向下滚动时标签颜色会重复
【问题讨论】:
能否请您展示一下您尝试过的内容?请花点时间阅读:How to Ask 你是重复使用单元格,这是改变标签背景颜色的原因,你需要显示cellForRowAtIndexPath代码。 该单元格在自定义单元格类中被选中,因此当我选择 + - 按钮时它具有颜色我如何使用 cellForRowAtIndexPath 来更新颜色 【参考方案1】:您可以像这样子类化您的 Cell(然后 cellForRow 将不负责更新颜色,仅用于设置默认颜色)。
class YourTableViewCellClass: UITableViewCell
@IBOutlet weak var yourLabel: UILabel!
override func setSelected(_ selected: Bool, animated: Bool)
if(selected)
self.contentView.backgroundColor = UIColor.red //or what you want as your cell bg color
self.yourLabel.backgroundColor = UIColor.green //or what you want
else
self.contentView.backgroundColor = UIColor.white //or what you want as your cell bg color
self.yourLabel.backgroundColor = UIColor.red //or what you want
【讨论】:
【参考方案2】:我的理解是,你把代码放在tableview的didSelectRow方法中来改变颜色,但它在滚动时显示以前的颜色。
因此,您还需要在 cellForRow 方法中设置条件,例如
if(condition)
lbl.textcolor = x
else
lbl.textcolor = y
【讨论】:
以上是关于在uitableviewcell背景颜色上快速更改标签的主要内容,如果未能解决你的问题,请参考以下文章
静态 UITableViewCell 背景颜色在 iPad 上总是白色
更改每个其他单元格的 UItableViewCell 背景颜色
在 iOS 14 中更改 UITableViewCell 背景颜色
开关打开时更改 UITableViewCells 的背景颜色 - Swift