在SwiftUI中,可以使用GeometryReader来使一个视图与另一个具有动态大小的视图大小相同。GeometryReader是一个容器视图,它可以根据父视图的大小调整自身的大小。
使用GeometryReader可以通过闭包将其子视图作为参数传递,并在闭包中访问到父视图的大小信息。以下是一个示例代码:
struct ContentView: View {
var body: some View {
GeometryReader { geometry in
VStack {
Text("父视图的大小:\(geometry.size.width) x \(geometry.size.height)")
Text("动态大小的视图")
.frame(width: geometry.size.width, height: geometry.size.height/2)
.background(Color.blue)
}
}
}
}
在上面的代码中,通过GeometryReader包裹了一个垂直的容器视图VStack。在VStack中,首先展示了父视图的大小信息,然后通过使用.frame将动态大小的视图设置为与父视图宽度相同、高度为父视图高度的一半,并设置了背景颜色为蓝色。
该代码示例中,通过GeometryReader获取父视图的大小信息,并将其应用于动态大小的视图。当父视图大小发生变化时,动态大小的视图会自动调整大小以与父视图保持一致。
推荐的腾讯云相关产品和产品介绍链接地址:
以上是对使一个视图与在SwiftUI中具有动态大小的另一个视图大小相同的问题的完善且全面的答案。希望对您有帮助!
领取专属 10元无门槛券
手把手带您无忧上云