[SwiftUI]親(ルート)ビューでのサイズを取得する方法

SwiftUI
スポンサーリンク

方法

親ビューでのサイズを取得するには、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メソッドを使うことで、親ビューでのサイズを取得することが出来ます。

オススメの記事

コメント

タイトルとURLをコピーしました