微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS 14 TableViewCell 无法设置选定的背景颜色

如何解决iOS 14 TableViewCell 无法设置选定的背景颜色

我刚刚更新了我的应用程序以针对 iOS 14,我注意到的第一件事是当我选择它们时,TableView 中的单元格不再获得标准的灰色背景。过去只需要这样的代码就可以工作:

func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    ...
    c.selectionStyle = .gray

现在在进行任何更改之前更新后,当我单击一个单元格时,背景只是保持白色(但边框消失)。

我已尝试通过多种方式解决该问题:

  • 将 selectedBackgroundView 设置为带有灰色 backgroundColor 的 UIView
  • 将 contentView.backgroundColor 设置为 nil 并将 contentView.isOpaque 设置为 false
  • 以上两者的结合
  • 在我的 TableViewCell 类中覆盖 setSelected 和 setHighlighted
  • 添加后台配置

TableViewCell 类中的后台配置:

 override func updateConfiguration(using state: UICellConfigurationState) {
          var background = UIBackgroundConfiguration.listPlainCell()

          if state.isHighlighted || state.isSelected {
              background.backgroundColor = .systemGray6
          } else {
              background.backgroundColor = .red// red just to see if it does anything
          }
    
          self.backgroundConfiguration = background
      }

没有任何效果。我只是继续看到白色背景,边框消失了。我该如何解决这个问题?

这是一张桌子的图片。当前选择了第三个单元格,注意底部边框消失了,它仍然是白色的。此外,它通常在单元格中有一个图像和文本,但为了保持简单,我暂时将它们设置为隐藏

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。