SwiftUI选项卡视图亮度视图垂直位置 [英] SwiftUI TabView brightness views vertical location

查看:0
本文介绍了SwiftUI选项卡视图亮度视图垂直位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更改SwiftUI中TabView的亮度,但每当亮度切换时,子视图都会更改其垂直位置。这对我来说非常神秘,因为亮度对视图的位置有任何影响似乎都很奇怪。

如果你一直在关注我过去的几个问题,你可能会意识到我想要更改亮度,因为我想在新视图滑动到上面(按下按钮)时使背景视图变暗。这就是为什么在样例代码中,我们必须包括Z-Stack。

示例代码:

struct ContentView: View {
    @State var press: Bool = Bool()
    
    var body: some View {
        ZStack {
            TabView {
                NavigationView {
                    Button(action: { press.toggle() }) {
                        Text("Toggle")
                    }
                }
                .tabItem {
                    Image(systemName: "square.stack").font(.title)
                    Text("View One")
                }
                
                NavigationView {
                    Button(action: { press.toggle() }) {
                        Text("Toggle")
                    }
                }
                .tabItem {
                    Image(systemName: "checkmark.square")
                    Text("View Two")
                }
            }
            .brightness(press ? -0.1: 0)
        }
    }
}

推荐答案

问题出在TabView内的多个NavigationViews您实际上应该只有1NavigationView位于视图层次结构的根。不鼓励使用多个NavigationViews,并可能导致意外结果,如下图所示。因此,body的内部应为:

NavigationView {
    ZStack {
        TabView {
            Button(action: { press.toggle() }) {
                Text("Toggle")
            }
            .tabItem {
                Image(systemName: "square.stack")
                Text("View One")
            }
            
            Button(action: { press.toggle() }) {
                Text("Toggle")
            }
            .tabItem {
                Image(systemName: "checkmark.square")
                Text("View Two")
            }
        }
        .brightness(press ? -0.1: 0)
    }
}

这篇关于SwiftUI选项卡视图亮度视图垂直位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆