SwiftUI:如何适配深色模式和浅色模式

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的其他文章:

Swift:旧版本的主应用中刷新iOS 14 的Widget

你可能感兴趣的:(SwiftUI:如何适配深色模式和浅色模式)