ios - 当滚动出 View 时,覆盖的 setSelected 和 setHighlighted 不保留选定的背景

标签 ios swift uitableview cocoa-touch

我的重用 UITableViewCellsetSelected 看起来像这样(我的 setHighlighted 也是如此):

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

每当单元格滚出然后返回到 View 中时,背景颜色就会变回默认的白色。就好像单元格没有保持其选中状态。

最佳答案

问题是 setSelected 会被调用,如果单元格被选中,它会将其更改为正确的背景颜色,然后 setHighlighted 会被调用,因为我的单元格是未突出显示它会将我的单元格更改回默认的白色。

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

关于ios - 当滚动出 View 时,覆盖的 setSelected 和 setHighlighted 不保留选定的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54756123/

相关文章:

ios - ContainerView 添加导出

uitableview - 为什么清除按钮不与 UITextField 中的文本对齐?

ios - 音频时间戳格式 + 'MusicDeviceMIDIEvent'

ios - 根据另一个的增长缩小 UITextField 的宽度

ios - 数组中的 UIImage 名称不断返回 nil 值。

ios - UITableView - 什么是 indexPath?

ios - SwiftUI 跨多个 subview 拖动手势

Swift 4 - 将数据传递到 Collection View 单元中嵌入的 TableView

ios - tableview 单元格中的 UIButton 更改文本

ios - 带有 2 个小数点的 NSNumberFormatter 导致奇怪的结果