按钮边框在深色模式下无法选择正确的颜色

时间:2019-09-24 10:18:05

标签: swift swift4.2 ios-darkmode

我的问题也在这里描述 UIColor return wrong values for dark mode colors 李·安德鲁(Lee Andrew)

按钮的基本边框颜色未正确选择。就我而言,情况是:

  1. 以白色模式打开VC1。
  2. 将VC2推入白色模式。
  3. 在VC2中切换为暗模式。
  4. UI正确更新。
  5. 导航回到VC1

按钮的边框没有正确更新。它在白色模式下使用颜色,但是文本正确地更改了颜色。

上面提出的有问题的layer.background解决方案无济于事...如果没有帮助,请使用非beta xcode版本11.0(11A420a)。在这里真的可以使用帮助...我没有选择。调用setNeedsDisplay for按钮也无济于事。

更新。弄清了东西。直接调用按钮无效。但是,在我用带有边框颜色的按钮(单元格,页脚,页眉等)覆盖所有内容的traitCollectionDidChange方法之后,事情便开始正常工作。

1 个答案:

答案 0 :(得分:0)

要解决您的问题,

    override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
        super.traitCollectionDidChange(previousTraitCollection)
        // Your custom borderColor
        layer.borderColor = .white
    }

  

注意:如果您使用的是tableview / collectionview,则必须在对象和边框“ init”中设置颜色,否则只有可见的单元格会更新边框颜色。