要使矩形的高度与VStack的高度相同,可以使用GeometryReader来获取VStack的高度,并将其应用于矩形。
以下是实现的步骤:
下面是一个示例代码:
import SwiftUI
struct ContentView: View {
@State private var rectangleHeight: CGFloat = 0
var body: some View {
GeometryReader { geometry in
VStack {
Text("VStack")
.font(.title)
.padding()
VStack {
Rectangle()
.fill(Color.blue)
.frame(width: 200, height: self.rectangleHeight)
}
.background(GeometryReader { proxy in
Color.clear
.onAppear {
self.rectangleHeight = proxy.size.height
}
})
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在上述示例中,我们使用GeometryReader包裹了整个视图,并在VStack的背景中嵌套了另一个GeometryReader。在嵌套的GeometryReader中,我们将矩形的高度设置为GeometryProxy对象的高度。这样,矩形的高度将与VStack的高度保持一致。
请注意,这只是一个示例,你可以根据自己的需求进行修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云