SwiftUI 布局 - VStack 中的 NavigationView - 填充高度
SwiftUI Layout - NavigationView in VStack - fill height
鉴于以下观点:
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
SomeView()
Spacer()
HStack {
Text("Some Text1")
Spacer()
Text("Some Text2")
Spacer()
Text("Some Text2")
} .background(Color.green)
} .background(Color.blue)
}
}
struct SomeView: View {
var body: some View {
VStack {
Text("Hello, World!")
}
}
}
一切正常。绿色的 HStack 位于屏幕底部,其余屏幕区域由剩余的 VStack 内容填充为蓝色。
一旦 SomeView 被 NavigationView 包裹,这种行为就会改变。绿色的 HStack 仍然在屏幕底部,但 NavigationView 没有填满其余部分。有一个小蓝都剩下了。如何删除它让 NavigationView 填充内容区域?
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
SomeView()
Spacer()
HStack {
Text("Some Text1")
Spacer()
Text("Some Text2")
Spacer()
Text("Some Text2")
} .background(Color.green)
} .background(Color.blue)
}
}
struct SomeView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello, World!")
} .navigationBarTitle(Text("Test"))
}
}
}
提前感谢您的帮助!
删除 Spacer
并将 VStack
间距设置为零。这是我的代码。希望对你有所帮助。
struct ContentView: View {
var body: some View {
VStack(spacing: 0) {
SomeView()
HStack {
Text("Some Text1")
Spacer()
Text("Some Text2")
Spacer()
Text("Some Text2")
} .background(Color.red)
} .background(Color.blue)
}
}
struct SomeView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello, World!")
} .navigationBarTitle(Text("Test"))
}
}
}
鉴于以下观点:
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
SomeView()
Spacer()
HStack {
Text("Some Text1")
Spacer()
Text("Some Text2")
Spacer()
Text("Some Text2")
} .background(Color.green)
} .background(Color.blue)
}
}
struct SomeView: View {
var body: some View {
VStack {
Text("Hello, World!")
}
}
}
一切正常。绿色的 HStack 位于屏幕底部,其余屏幕区域由剩余的 VStack 内容填充为蓝色。
一旦 SomeView 被 NavigationView 包裹,这种行为就会改变。绿色的 HStack 仍然在屏幕底部,但 NavigationView 没有填满其余部分。有一个小蓝都剩下了。如何删除它让 NavigationView 填充内容区域?
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
SomeView()
Spacer()
HStack {
Text("Some Text1")
Spacer()
Text("Some Text2")
Spacer()
Text("Some Text2")
} .background(Color.green)
} .background(Color.blue)
}
}
struct SomeView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello, World!")
} .navigationBarTitle(Text("Test"))
}
}
}
提前感谢您的帮助!
删除 Spacer
并将 VStack
间距设置为零。这是我的代码。希望对你有所帮助。
struct ContentView: View {
var body: some View {
VStack(spacing: 0) {
SomeView()
HStack {
Text("Some Text1")
Spacer()
Text("Some Text2")
Spacer()
Text("Some Text2")
} .background(Color.red)
} .background(Color.blue)
}
}
struct SomeView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello, World!")
} .navigationBarTitle(Text("Test"))
}
}
}