我已经在我的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
时才会更新。
是否有更好的方法,这样CGColor
也会立即得到更新?
答案 0 :(得分:1)
转到Xcode> Assets.xcassets>新的颜色集>为明暗外观设置颜色
现在在视图背景色中设置此颜色
self.view.backgroundColor = UIColor.init(named: "ColorForCameraScreen")