gpt4 book ai didi

ios - 如何在切换深色/浅色模式时动态提供 CGColor?

转载 作者:行者123 更新时间:2023-11-28 23:22:46 36 4
gpt4 key购买 nike

我在我的 Swift 应用程序中为 OS13 设置了动态 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 我都计划调用那个特定 UIViewtraitCollectionDidChange > 例如这样:

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
layer.fillColor = color.cgColor
}

它有效,但我注意到,在更改设置中的模式后,如果我使用底部滑动手势切换回我的应用程序,那么我可以看到所有已更新的 UIColor进入屏幕,但 CGColor 仅在应用实际进入前台并调用 traitCollectionDidChange 时才会更新。

enter image description here

是否有更好的方法来使 CGColor 也立即更新?

最佳答案

转到 Xcode > Assets.xcassets > 新颜色集 > 设置浅色和深色外观的颜色

现在在 View 背景颜色中设置此颜色

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

enter image description here

关于ios - 如何在切换深色/浅色模式时动态提供 CGColor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59409050/

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