文系iOSエンジニアの備忘録

エンジニア iOS Swift

SwiftUIやってて出てきたGeometryReaderって【2020年】

はじめに

SwiftUIでサイドメニューを実装しようと

SwiftUIでSwiftUIでサイドメニュー(ハンバーガーメニュー)を表示する - すいすいSwift

こちらのサイトをみていたら GeometryReader という記述がありました。

SwiftUIのおそらくグラフとかアニメーションのTutorialで出てきたと思うのですが、自分は最初はそこは必要ないと思い飛ばしていました。

なので今回は自分が調べた内容を備忘録としてまとめます。

公式の定義

GeometryReaderの説明は独自のサイズと座標空間の関数としてコンテンツを定義するコンテナービュー。

親レイアウトに柔軟な優先サイズを返します。

とあります。


親のViewのサイズや座標空間を取得して子のViewで使えるって感じですかね。

サイドメニューの参考サイトの場合は画面のサイズを取得するため body下で利用したのでBodyのサイズ、つまり画面サイズが取得できたと。

画面サイズの取得の仕方としては

UIScreen.main.boundsでも取得はできそうです。

逆に親Viewを指定というか選ぶ場合は

.background(指定したい親View)をすればいけるみたい。

他にも参考サイト先で面白い内容があるのでもう少し勉強しようと思います。

参考サイト

SwiftUIの肝となるGeometryReaderについて理解を深める - Qiita

Apple公式Doc

[SwiftUI] GeometryReaderでViewのサイズを知る