SwiftUI如何自动根据系统的设置适配深色模式呢?
我们先引入一个环境变量@Environment(\.colorScheme) var colorScheme
colorScheme
的值有两个分别是.dark
和.light
那么再根据你的需要改变你的颜色主题就可以了,比如下面以colorScheme
的值自动获得页面的背景颜色,这样随着系统的深色主题变化,应用的背景颜色也将跟着变化。
var backgroundColor:CGColor {
WidgetCenter.shared.reloadAllTimelines()
if colorScheme == .dark {
return Color.black.cgColor
} else {
return Color.white.cgColor
}
}
我们在使用的颜色的地方加入backgroundColor
即可,代码如下:
VStack {
Text("Hello World")
}.background(Color.init(backgroundColor))
Swift和SwiftUI的其他文章: