在SwiftUI中,要使HStack的子视图高度相等,可结合使用.frame(maxHeight: .infinity)
和.fixedSize(horizontal: false, vertical: true)
。.frame
使子视图占据最大高度,而.fixedSize
确保HStack的高度适应最高的子视图。例如:
swift
HStack {
VStack {
Text("Hello,")
Text("world")
Text("!")
}
.frame(maxHeight: .infinity)
.background(Color.pink)
Text("Hi, 🌎!")
.frame(maxHeight: .infinity)
.background(Color.yellow)
}
.fixedSize(horizontal: false, vertical: true)
HStack {
VStack {
Text("Hello,")
Text("world")
Text("!")
}
.frame(maxHeight: .infinity)
.background(Color.pink)
Text("Hi, 🌎!")
.frame(maxHeight: .infinity)
.background(Color.yellow)
}
.fixedSize(horizontal: false, vertical: true)
通过此方法,HStack内的子视图将具有相同的高度。