在SwiftUI中,可以使用GeometryReader来获取父视图的大小和坐标信息。当GeometryReader的大小发生变化时,可以使用其内部的GeometryProxy对象来更新变量。
要在检测到GeometryReader大小变化时更新变量,可以遵循以下步骤:
GeometryReader { geometry in
Text("Hello, World!")
.frame(width: geometry.size.width, height: geometry.size.height)
}
GeometryReader { geometry in
Text("Width: \(geometry.size.width), Height: \(geometry.size.height)")
}
@State private var viewSize: CGSize = .zero
GeometryReader { geometry in
Text("Hello, World!")
.onAppear {
viewSize = geometry.size // 初始大小
}
.onChange(of: geometry.size) { newSize in
viewSize = newSize // 大小变化时更新变量
}
}
在这个例子中,viewSize是一个@State变量,用于存储视图的大小信息。在视图出现时,将初始大小存储在viewSize变量中。当视图的大小发生变化时,使用onChange修饰符来更新viewSize变量。
这样,当GeometryReader检测到大小变化时,可以及时更新相关的变量。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云