Swiftui Xcode 11——迅捷';s暗模式设置

Swiftui Xcode 11——迅捷';s暗模式设置,swiftui,xcode11,ios13,Swiftui,Xcode11,Ios13,好的。我知道这不应该是火箭科学。我似乎无法让黑暗模式工作,我已经阅读了几次文档。希望有人能挑出我错过了什么 我在资源目录中有一个命名颜色 为了便于测试,我将plist模式设置为暗模式。 我的内容视图如下所示: struct ContentView : View { var body: some View { VStack { Text("Hello World") Text("Yo yo yo") .color(Color("da

好的。我知道这不应该是火箭科学。我似乎无法让黑暗模式工作,我已经阅读了几次文档。希望有人能挑出我错过了什么

我在资源目录中有一个命名颜色

为了便于测试,我将plist模式设置为暗模式。

我的内容视图如下所示:

struct ContentView : View {
var body: some View {
    VStack {
        Text("Hello World")
        Text("Yo yo yo")
            .color(Color("darkModeColor"))
    }

}
}

无论我做什么,颜色总是“任何”的外观,当它应该采取青色

我知道暗模式本身可以工作,因为苹果提供的所有系统语义颜色都可以正常工作,因为你可以看到“Hello World”文本变为白色


你知道我遗漏了什么,或者其他人在使用Xcode 11 Beta 1时遇到过这个问题吗?

你可以在预览中更改配色方案

struct ContentView\u预览:PreviewProvider{
静态var预览:一些视图{
ContentView().environment(\.colorScheme、.dark)
}
}
upd:您可以为明暗模式创建任何预览

struct ContentView\u预览:PreviewProvider{
静态var预览:一些视图{
团体{
ContentView()
ContentView().environment(\.colorScheme、.dark)
}
}
}

这可能是Xcode 11测试版中的一个bug。我在UIKit应用程序中尝试了暗模式功能,使用
UIColor
时效果很好,但在SwiftUI中使用
color
时,同样的颜色不起作用。希望这将在下一个版本中修复


更新:此问题已通过Xcode 11 beta 3解决

我们可以用来克服当前限制的一个有效(但相当详细)解决方案是使用当前配色方案参数化的方法扩展颜色,如下所示:

import SwiftUI

extension Color {

    static let lightBackgroundColor = Color(white: 1.0)

    static let darkBackgroundColor = Color(white: 0.0)

    static func backgroundColor(for colorScheme: ColorScheme) -> Color {
        if colorScheme == .dark {
            return darkBackgroundColor
        } else {
            return lightBackgroundColor
        }
    }
}
在需要访问这些颜色的视图中,您将为颜色方案添加环境属性,并使用它检索动态颜色:

import SwiftUI

struct ColoredView : View {

    @Environment(\.colorScheme) var colorScheme: ColorScheme

    var body: some View {
        Rectangle().fill(Color.backgroundColor(for: self.colorScheme))
    }
}

代码中定义的这些颜色适用于Xcode预览和模拟器。

同意。只是帮助其他开发人员运行它,而不是把我的头发拔出来!这在beta 2中仍然存在,不是吗?@Miotz是的,它还没有修复。这不适用于颜色,请正确阅读问题,尝试相同的方法,然后回答。如果我们必须使用这样的颜色,那么颜色模板在资产中的意义是什么。你的问题并不是给出问题的答案,而是给出了另一种手动方式……这一切都很好,但正如其他人所指出的,资产中的颜色模板在当前测试版中不起作用。我只是提供了一个工作的替代品。对我来说是有效的——至少作为一个临时的解决办法。我希望在我的根
ContentView
中包含一些视图的语义边框。我很感激这个提示。这个问题是用Xcode 11 beta 3修复的:]