在SwiftUI中布局后,如何获取“视图”的位置?

Tay*_*lor 3 ios swift swiftui

有没有办法View在布局后获取的框架?在布局放置两个视图之后,我想画一条线连接两个视图:

在此处输入图片说明

似乎我需要类似measureReact的东西。

Jak*_*ake 5

使用a GeometryReader获取每个视图的框架,并使用该框架确定两个视图之间的路径的点。

struct ContentView : View {
    var body: some View {
        GeometryReader { geometry -> Text in
            let frame = geometry.frame(in: CoordinateSpace.local)
            return Text("\(frame.origin.x), \(frame.origin.y), \(frame.size.width), \(frame.size.height)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这种方法真的有效吗?您将如何从视图_外部_访问从 GeometryReader 获得的值?那就是你需要它的地方,对吗? (16认同)
  • 当我在视图上使用 GeometryReader 时,视图会错位。 (2认同)