根据苹果公司的说法,
GeometryReader:一个容器视图,通过自身大小和坐标空间的函数定义其内容。
GeometryProxy:用于访问容器视图的大小和坐标空间(用于锚定解析)的代理。
我正在尝试理解何时使用GeometryReader和何时使用GeometryProxy?我已经在Google上搜索了,但没有看到相关的帖子。因此,我在这里提问,以便像我这样的新开发人员可以将其作为参考。
根据苹果公司的说法,
GeometryReader:一个容器视图,通过自身大小和坐标空间的函数定义其内容。
GeometryProxy:用于访问容器视图的大小和坐标空间(用于锚定解析)的代理。
我正在尝试理解何时使用GeometryReader和何时使用GeometryProxy?我已经在Google上搜索了,但没有看到相关的帖子。因此,我在这里提问,以便像我这样的新开发人员可以将其作为参考。
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
结构,您可以从中访问所有信息。
有用的链接: