在主应用程序中,我可以根据用户偏好覆盖暗/亮主题,这样我就可以根据命名的颜色检索正确的颜色信息。
if (user preference) {
overrideUserInterfaceStyle = .light
} else {
overrideUserInterfaceStyle = .dark
}
// Dark theme/ light theme automatic aware color.
SwiftUI.Color("purpleColor")
但是,如何重写WidgetKit
的主题,以便WidgetKit
能够正确地解释命名颜色?
我知道在WidgetKit
中,我可以使用@Environment(\.colorScheme)
读取当前系统范围的主题设置。
但是,这不是我想要的。
我希望能够覆盖主题的WidgetKit
的基础上,用户的喜好,然后能够检索正确的命名颜色。
谢谢。
1条答案
按热度按时间dtcbnfnu1#
您可以逐个视图覆盖
.colorScheme
。最简单的方法是使用三进制并将新的.colorScheme
注入到视图中。如果要更改设备.colorScheme
,请使用.preferredColorScheme
:哦,而且没有必要使用SwiftUI。这将是假设的。