答案 0 :(得分:3)
你可以像这样对你的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
}
} }
答案 1 :(得分:1)
我的理解是,你在tableview的didSelectRow方法中添加代码来改变颜色,但在滚动时显示以前的颜色。
因此,您还需要在cellForRow方法中设置条件,例如
if(condition)
{
lbl.textcolor = x
}
else
{
lbl.textcolor = y
}