覆盖setSelected和setHighlighted在滚动到视图之外时不会保留选定的背景

时间:2019-02-18 22:10:52

标签: ios swift uitableview cocoa-touch

我的setSelected供重复使用UITableViewCell看起来像这样(我的setHighlighted也是如此):

override func setSelected(_ selected: Bool, animated: Bool) {
  if selected {
    backgroundColor = .red
  } else {
    backgroundColor = .white
  }
}

每当单元格滚动出来然后回到视图时,背景颜色就会变回默认的白色。好像该单元格未保持其选定状态。

1 个答案:

答案 0 :(得分:1)

问题在于,setSelected会被调用,如果选择了该单元格,则会将其更改为正确的背景色,然后setHighlighted将会被调用,并且由于我的单元格未突出显示,因此会更改我的单元格单元格恢复为默认的白色。

我只是从setHighlighted实现中取出内容,它解决了我的问题。