如何仅将首选配色方案应用于一个视图,而不是 SwiftUI 中视图层次结构中的其余视图

Mar*_*rdo 11 ios swift swiftui

我正在尝试使一个视图在黑暗模式下渲染,而我的应用程序的其余部分则采用用户选择的配色方案。当我应用于.preferredColorScheme(.dark)子视图时,它也会导致其他视图变暗。我该如何解决这个问题?

内容查看:

NavigationView {
    ZStack {
        NavigationLink(isActive: $showingGoalDashboardView) {
            TestView(goal: goals.first!)
        } label: {
            EmptyView()
        }
                
        NavigationLink(isActive: $showingCreateGoalView) {
            CreateGoalView(showingGoalCreateView: $showingCreateGoalView)
        } label: {
            EmptyView()
        }
                
        LoadingView()
    }
}
Run Code Online (Sandbox Code Playgroud)

LoadingView: LoadingView 仅包含一些 UI 元素,所有元素都包含在应用了ZStack属性.preferredColorScheme(.dark)的 中。

Asp*_*eri 3

preferredColorScheme作品不是针对每个视图,而是针对当前演示文稿- 在本例中是当前窗口。请参阅文档:

演示

放入LoadingView工作表或弹出窗口,或新窗口等中,并且将独立应用深色模式。

更新:嗯,实际上它仍然可以使用View.colorScheme,并且它可以工作,但它已被弃用 - 请注意:

    LoadingView()
        .colorScheme(.dark)
Run Code Online (Sandbox Code Playgroud)

使用 Xcode 13.4 / iOS 15.5 进行测试