首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使矩形的高度与VStack的高度相同

要使矩形的高度与VStack的高度相同,可以使用GeometryReader来获取VStack的高度,并将其应用于矩形。

以下是实现的步骤:

  1. 在SwiftUI中,使用GeometryReader可以获取父视图的尺寸信息。我们可以将GeometryReader包裹在VStack外部,以便获取VStack的高度。
  2. 在GeometryReader中,使用GeometryProxy对象来获取父视图的尺寸信息。可以通过GeometryProxy对象的size属性获取父视图的尺寸。
  3. 使用@State属性包装矩形的高度。这样可以在视图层次结构中保持矩形高度的同步更新。
  4. 在矩形的高度属性中,将GeometryProxy对象的高度应用于矩形。

下面是一个示例代码:

代码语言:txt
复制
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的高度保持一致。

请注意,这只是一个示例,你可以根据自己的需求进行修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券