【发布时间】:2020-02-20 23:58:58
【问题描述】:
我的应用广泛使用了 CAGradientLayers,当切换暗/亮模式时,它们显然不会自动更新其颜色。当应用程序关闭并重新打开时,它们会更新颜色。
我知道我可以使用以下代码来检测更改并单独重新加载每个视图
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
//
}
但是,我正在寻找不需要我单独更新每个视图的修复程序。有没有办法检测亮/暗模式更改(可能在应用程序委托内)并强制整个应用程序重新加载(好像它已被强制关闭并重新打开)?
【问题讨论】:
-
不清楚您可能会问什么。 “强制整个应用程序自行重新加载”是什么意思? “快速修复”是什么意思?没有什么需要修复的,一切都很快。您收到
traitCollectionDidChange,您使用备用颜色集重新绘制渐变。 Apple 在 WWDC 2019 视频中对此主题进行了详尽的解释。 -
developer.apple.com/videos/play/wwdc2019/214/?time=1393 完全解释了这一点,所以请观看它。
标签: ios swift ios13 ios-darkmode