我制作了一个自定义表格视图单元格,在其中按如下方式覆盖setHighlighted函数。
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
let color = self.shadowView.backgroundColor
super.setHighlighted(highlighted, animated: animated)
if highlighted == true {
self.shadowView.backgroundColor = .lightGray
} else {
self.shadowView.backgroundColor = color
}
}
问题是self.shadowView.backgroundColor每个单元格的所有背景色都从颜色数组中填充。而且,当我启动该应用程序时,颜色是正确的,但是当我按下任何一个单元格时,该颜色都会突出显示,但似乎从未调用过tableView.deselectRow(at:indexPath,animation:true)。
但是当我像这样简单地为每个单元格使用一种颜色时:
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
super.setHighlighted(highlighted, animated: animated)
if highlighted == true {
self.shadowView.backgroundColor = .lightGray
} else {
self.shadowView.backgroundColor = .blue
}
}
然后一切正常,取消选择单元格。
也许有人已经遇到过这样的问题?