切换暗/亮模式时如何动态提供CGColor?

时间:2019-12-19 11:40:22

标签: ios swift ios-darkmode

我已经在我的Swift应用程序中为OS13设置了动态$ crontab -l 来处理黑暗模式。

例如:

UIColor

在代码static var background: UIColor { if #available(iOS 13, *) { return UIColor { (traitCollection: UITraitCollection) -> UIColor in if traitCollection.userInterfaceStyle == .dark { return UIColor(hex: "2b2d42") } else { return UIColor(hex: "FFFFFF") } } } else { return UIColor(hex: "FFFFFF") } } 中使用代码CGColor的任何地方,我打算像这样调用特定的UIColor的{​​{1}}:

traitCollectionDidChange

它可以工作,但是我注意到的是,在设置中更改了模式后,如果我使用底部滑动手势切换回我的应用,那么我可以在输入屏幕上看到所有已更新的UIView,但是override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { layer.fillColor = color.cgColor } 仅在应用程序真正进入前台并调用UIColor时才会更新。

enter image description here

是否有更好的方法,这样CGColor也会立即得到更新?

1 个答案:

答案 0 :(得分:1)

转到Xcode> Assets.xcassets>新的颜色集>为明暗外观设置颜色

现在在视图背景色中设置此颜色

self.view.backgroundColor = UIColor.init(named: "ColorForCameraScreen")

enter image description here