当滚动出视图时,覆盖的 setSelected 和 setHighlighted 不保留选定的背景
Overridden setSelected and setHighlighted doesn't retain selected background when scrolls out of view
我的 setSelected
重用 UITableViewCell
看起来像这样(我的 setHighlighted
也是):
override func setSelected(_ selected: Bool, animated: Bool) {
if selected {
backgroundColor = .red
} else {
backgroundColor = .white
}
}
只要单元格滚出然后返回到视图中,背景颜色就会变回默认的白色。好像单元格没有保持其选中状态。
问题是 setSelected
会被调用,如果单元格被选中,它会将其更改为正确的背景颜色,然后 setHighlighted
会被调用,因为我的单元格没有突出显示它会将我的单元格改回默认的白色。
我只是从我的 setHighlighted
实现中取出了内容,它解决了我的问题。
我的 setSelected
重用 UITableViewCell
看起来像这样(我的 setHighlighted
也是):
override func setSelected(_ selected: Bool, animated: Bool) {
if selected {
backgroundColor = .red
} else {
backgroundColor = .white
}
}
只要单元格滚出然后返回到视图中,背景颜色就会变回默认的白色。好像单元格没有保持其选中状态。
问题是 setSelected
会被调用,如果单元格被选中,它会将其更改为正确的背景颜色,然后 setHighlighted
会被调用,因为我的单元格没有突出显示它会将我的单元格改回默认的白色。
我只是从我的 setHighlighted
实现中取出了内容,它解决了我的问题。