我需要为VStack中的多个视图获取框架。我认为使用GeometryReader
,但它仅为父级返回必要的参数。如何在下面的屏幕截图中为每个视图获取这些参数?
答案 0 :(得分:0)
我们可以在所需视图上的叠加层内部使用GeometryReader,并将必要的帧存储在数组中或作为单独的变量。
ForEach(0..<n) { number in
YourView()
.overlay(
GeometryReader { geometry in
Color.clear
.onAppear {
self.buttonFrames[number] = geometry.frame(in: .global)
}
}
)
}
有关更多详细信息,您可以检查以下来源:https://github.com/twostraws/SwiftOnSundays/blob/master/020%20Switcharoo/Project/Switcharoo/ContentView.swift 以及完整的教程:https://www.youtube.com/watch?v=ffV_fYcFoX0