我有一个简单的VStack
,顶部有一个视图,底部有一个多行文本。文本可以更新其内容,因此可以根据行数调整其大小。发生这种情况时,顶部的视图也会调整其位置-向上或向下移动。
我希望顶视图保持固定的垂直位置,而与VStack
中下面的视图无关。我认为Spacer
的用途是,因为它们很灵活。但这并没有窍门。
struct ContentView: View {
var body: some View {
VStack {
HStack("Some Icons")
Spacer()
Text("Multiline Text")
}
}
}
答案 0 :(得分:1)
您可以将其包装在ZStack
中:
struct ContentView: View {
var body: some View {
ZStack {
VStack {
Text("top view")
Spacer()
}
VStack {
Spacer()
Text("bottom view")
}
}
}
}
这样,第一个VStack
中的所有内容都不会相对于第二个VStack
移动。
或者,您可以继续使用VStack
,但将其子视图包装在单独的VStack
中:
struct ContentView: View {
var body: some View {
VStack {
VStack {
Text("top view")
Spacer()
}
VStack {
Spacer()
Text("bottom view")
}
}
}
}