gpt4 book ai didi

swiftui - SwiftUI 中的 GeometryReader 和 GeometryProxy 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 00:56:13 24 4
gpt4 key购买 nike

按照苹果的说法,

GeometryReader
一个容器 View ,将其内容定义为它自己的大小和坐标空间的函数。


几何代理:
用于访问容器 View 的大小和坐标空间(用于 anchor 分辨率)的代理。


我想了解何时使用 GeometryReader 以及何时使用 GeometryProxy?我做了谷歌,但没有看到任何帖子出现在结果中。所以我在这里问一下,以便像我这样的新开发人员可以引用。

最佳答案

GeometryReader

SwiftUI’s GeometryReader allows us to determine the size and coordinates of views as a function of its own size and coordinates.



您可以像这样使用 GeometryReader:
GeometryReader { geometry in
SomeView()
.offset(x: geometry.size.width / 2)
}

几何代理

上面代码中的闭包变量 ( 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 读取 View (其大小、坐标等)并返回一个 GeometryProxy 结构,您可以从中访问所有信息。

有用的链接:
  • Understanding frames and coordinates inside GeometryReader
  • GeometryReader to the Rescue
  • Anchor preferences in SwiftUI
  • 关于swiftui - SwiftUI 中的 GeometryReader 和 GeometryProxy 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62377847/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com