繁体   English   中英

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

[英]How to only apply preferred color scheme to one view and not the rest of the views in the view hierarchy in SwiftUI

我试图让一个视图在黑暗模式下呈现,而我的应用程序的其余部分是在用户选择的配色方案中。 当我将.preferredColorScheme(.dark)应用于子视图时,它也会导致其他视图变暗。 我该如何解决这种行为?

内容视图:

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

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

preferredColorScheme不是针对每个视图工作的,而是针对当前演示文稿- 在这种情况下是当前窗口。 请参阅文档:

演示

LoadingView放入 sheet 或 popover 或新窗口等,将独立应用暗模式。

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

    LoadingView()
        .colorScheme(.dark)

使用 Xcode 13.4 / iOS 15.5 测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM