方法
親ビューでのサイズを取得するには、GeometryReaderのframeメソッドを使います。
具体的には、frameメソッドの引数で、親ビューの座標空間(global)を指定し、親ビューでのサイズを取得できます。
var body: some View {
VStack {
FirstView()
FirstView()
.padding()
}
}
struct FirstView: View {
var body: some View {
GeometryReader {geometry in
Text("幅:\(geometry.frame(in: .global).width)、高さ:\(geometry.frame(in: .global).height)")
}
}
}

上記のコードは、GeometryReaderの子ビューで取得しているのが、親ビューでのサイズであることを確認できるものです。
親ビューで指定されているパディングが、子ビューで受け取っているサイズと連動しているのが分かります。
つまり、GeometryReaderのframe(in : .global)を指定すれば、親ビューでのサイズを取得できるということです。
まとめ
GeometryReaderのframeメソッドを使うことで、親ビューでのサイズを取得することが出来ます。
コメント