当设备处于黑暗模式时,将应用程序切换为黑暗模式| Swift iOS 13

时间:2019-10-23 20:12:25

标签: ios swift

当设备上已经启用了暗模式并且我打开我的应用程序时,所有指定暗模式的颜色集都不会被应用:

但是当应用已经打开并从Control Center切换到黑暗模式时,以下代码会更改颜色:

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)
    guard let previousTraitCollection = previousTraitCollection else {return}
    if #available(iOS 13.0, *) {
        if previousTraitCollection.hasDifferentColorAppearance(comparedTo: traitCollection) {
            //Dark Mode
            let inputBackground = UIColor(named: "TEST1backgroundColor")
            let inputPlaceholder = UIColor(named: "TEST1placeholderColor")

            passwordBack.layer.backgroundColor = inputBackground?.cgColor
            TextField1.placeholderColor = inputPlaceholder!
            TextField2.placeholderColor = inputPlaceholder!

            TextField1.textColor = inputPlaceholder!
            TextField2.textColor = inputPlaceholder!
    }
  }
}

在已经处于黑暗模式下启动时如何应用这种颜色更改?

2 个答案:

答案 0 :(得分:1)

CGColors对暗或亮模式不反应。您没有显示passwordBack的声明,但是假设它是UIView或子类,则将其backgroundColor属性直接设置为inputBackground而不是使用layer.backgroundColor

答案 1 :(得分:0)

在这样的资产中仅用于命名颜色的外观。 enter image description here 因此,当应用打开且处于黑暗模式时,所有颜色将更改为对应的黑暗外观。