根据苹果公司
GeometryReader 一个容器视图,根据其自身大小和坐标空间定义其内容。
GeometryProxy: 用于访问容器视图的大小和坐标空间(用于锚点分辨率)的代理。
我试图了解何时使用GeometryReader以及何时使用GeometryProxy?我做了谷歌,但没有看到任何结果。所以我在这里问,以便像我这样的新开发人员可以将其用作参考。
答案 0 :(得分:4)
GeometryReader
SwiftUI的GeometryReader允许我们确定尺寸和 视图的坐标取决于其自身的大小和坐标。
您可以像这样使用GeometryReader
:
GeometryReader { geometry in
SomeView()
.offset(x: geometry.size.width / 2)
}
GeometryProxy
上面的代码中的闭包变量(geometry
)类型为GeometryProxy
。该结构为我们提供了以下信息:
public var size: CGSize { get }
public var safeAreaInsets: EdgeInsets { get }
public func frame(in coordinateSpace: CoordinateSpace) -> CGRect
public subscript<T>(anchor: Anchor<T>) -> T where T : Equatable { get }
基本上,GeometryReader
读取视图(其大小,坐标等),并返回一个GeometryProxy
结构,您可以从中访问所有信息。
有用的链接: