SwiftUI选项卡视图亮度视图垂直位置 [英] SwiftUI TabView brightness views vertical location
本文介绍了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屋!
查看全文