Loading...

【解決】Xcode12でGeometryReaderを使うと中央に配置していたはずのViewが左端に寄ってしまう

 問題の内容

もともとXcode11でSwiftUIを使って開発していたアプリをXcode12で開いたところ、レイアウトが崩れていました。
中央に配置していたはずのViewが画面左に寄ってしまっています。
alignmentやframeのModifierを弄っても真ん中に戻りません。

解決法

端に寄ってしまうViewはGeometryReaderの中に入っていました。
GeometryReader直下のStackに以下のModifier(.frame(~))をつけると真ん中に戻ります。


struct ContentView: View {

    

    var body : some View {

        GeometryReader { geo in

            ZStack {

                SomeView()

            }.frame(maxWidth: .infinity, maxHeight: .infinity)

        }

    }

}


考察

これを参考にしました。
GeometryReaderの仕様変更もしくはバグだと思います。
追加するModifierを見ると縦横の幅を無限大に設定しているみたいですが、これで真ん中に戻る理由はよくわかりません。


エラー 1931710940263548534
ホーム item