Swiftui 如何全局定位子视图
如何在主窗口中绝对定位子视图Swiftui 如何全局定位子视图,swiftui,Swiftui,如何在主窗口中绝对定位子视图 位置(x:y:)和偏移量(x:y:)相对于父对象 我得到的最好方法是使用GeometryReader并计算位置/偏移,例如,将圆定位在屏幕底部: GeometryReader { geo in Circle() .foregroundColor(.red) .frame(width: 100, height: 100) .offset(x: 0, y: UIScreen.main.bounds.size.height - geo.fram
位置(x:y:)
和偏移量(x:y:)
相对于父对象
我得到的最好方法是使用GeometryReader
并计算位置/偏移,例如,将圆定位在屏幕底部:
GeometryReader { geo in
Circle()
.foregroundColor(.red)
.frame(width: 100, height: 100)
.offset(x: 0, y: UIScreen.main.bounds.size.height - geo.frame(in: .global).maxY)
}
但这是有问题的GeometryReader
扭曲布局,结果将根据圆的父对象而变化
是否有一个确定的方法来定位圆,比如在屏幕宽度的中间和屏幕底部的10%(或固定量)?
编辑:
下面是我试图实现的一个例子:
struct InnerView: View {
var body: some View {
Circle()
.foregroundColor(.green)
.frame(width: 100, height: 100)
}
}
struct ContentView: View {
var body: some View {
LazyVGrid(columns: [.init(),.init()], content: {
InnerView()
InnerView()
InnerView()
})
}
}
InnerView
s中的一个能否在窗口的中下部区域相对地呈现其圆?不清楚此圆如何与屏幕上或层次结构中的其他视图相关(或应该相关)。你会提供独立的演示代码吗?@Asperi,我的问题实际上是,无论圆在视图层次结构中创建在何处,是否可以相对于屏幕定位圆,如果这使得senseYes成为可能,但这取决于其他层次结构,因为托管视图可能由于其他视图的重叠而变得不可见。@Asperi,请参阅编辑,希望它能传达更多信息info@Asperi,有什么建议吗?我似乎找不到一种方法来转换圆视图在另一个视图坐标系中的位置,并将其偏移相同的量geo.frame(in:.named(“other”)).minY似乎没有给出我期望的值。我可能是走错路了。目前还不清楚这个圆圈如何与屏幕上或层次结构中的其他视图相关联(或应该如何关联)。你会提供独立的演示代码吗?@Asperi,我的问题实际上是,无论圆在视图层次结构中创建在何处,是否可以相对于屏幕定位圆,如果这使得senseYes成为可能,但这取决于其他层次结构,因为托管视图可能由于其他视图的重叠而变得不可见。@Asperi,请参阅编辑,希望它能传达更多信息info@Asperi,有什么建议吗?我似乎找不到一种方法来转换圆视图在另一个视图坐标系中的位置,并将其偏移相同的量geo.frame(in:.named(“other”)).minY似乎没有给出我期望的值。我可能完全错了