给出以下视图:
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"))
}
}
}
谢谢您的帮助!
答案 0 :(得分:2)
删除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"))
}
}
}