【问题标题】:SwiftUI TabView brightness views vertical locationSwiftUI TabView 亮度视图垂直位置
【发布时间】:2021-11-29 16:48:50
【问题描述】:

我正在尝试在 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)
        }
    }
}

【问题讨论】:

    标签: swiftui navigation vertical-alignment tabview brightness


    【解决方案1】:

    问题在于TabView 内的多个NavigationViews 您确实应该在视图层次结构的根部只有1 个NavigationView。不鼓励使用多个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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2021-01-13
      • 2023-04-03
      • 2021-09-12
      • 2021-07-06
      相关资源
      最近更新 更多