gpt4 book ai didi

ios - 使用 UIAppearence 设置 UITableViewCell 选择的背景颜色不起作用

转载 作者:行者123 更新时间:2023-11-28 07:38:18 24 4
gpt4 key购买 nike

我想更改所有 UITableViewCell 的选定颜色。我已经在使用 UIAppearence 为其他一些 UI 元素定义基本属性,而且它可以正常工作。

但是,设置

let bgColorView = UIView()
bgColorView.backgroundColor = #colorLiteral(red: 0.9411764706, green: 0.9411764706, blue: 0.9411764706, alpha: 1)
UITableViewCell.appearance().selectedBackgroundView = bgColorView

导致一个奇怪的故障,单元格失去选择颜色,尽管 UITableViewCells 仍然被选中:

UITableViewCell disappearing selection

故障不是由 UI 代码引起的,因为直接在 UITableViewCell.awakeFromNib 中设置所选颜色效果很好,所选单元格保持所需的颜色。

编辑:所有不同的单元格都会发生这种情况。这些单元格不会做任何有趣的事情,只是在 awakeFromNib 中设置标签颜色等内容,并在模型 setter 中设置一些 RxSwift 绑定(bind)以设置各种标签的值。 VC 仅对通过调用委托(delegate)方法(使用 RxSwift 中的 modelSelected)选择的单元格作出 react 。

编辑:UITableView 的 VC 是 UISplitViewController 的“左侧”。 “右侧”是一个 UINavigationController 并且在这个 UINavigationController 中使用 setViewControllers 在点击单元格后导航会导致奇怪的故障。

最佳答案

因此,经过一些调查后,我能够重现您的“故障”:) 我下载了 RxSwift,然后尝试了他们的 tableView 示例。我也使用 RxSwift,但我不使用他们的 tableView 委托(delegate)/数据源扩展。我还制作了一个自定义的 tableViewCell。

重写 UITableViewCellsetSelected 方法后,没有调用它的 super 方法,同样的情况发生了。实际上,即使不使用 RxSwift,这也应该发生。

因此,再次确保在您的 tableView 类中,如果您不需要对 setSelected 执行任何操作,请不要覆盖它。否则,在覆盖父类(super class)方法时,请确保调用 super.method(),就像您在 Controller 的 viewDidLoad() 中所做的那样。

override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}

关于ios - 使用 UIAppearence 设置 UITableViewCell 选择的背景颜色不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52869874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com