MacOS 11 beta: ZStack inside GeometryReader

私のアプリ美しいサイコロMacOS 11 betaでテストする時バグが出た。 本来サイコロは画面の真ん中表示するはずだが、なぜかMacOS 11 betaには左上になってしまいました。

f:id:machinemxy:20200710161835p:plain
本来あるべき姿
f:id:machinemxy:20200710161731p:plain
MacOS 11 betaのバグ
よく調べると、GeometryReaderの中のZStack、本来はGeometryReaderの全てのスペースを占領するという仕様になっているが、なぜか新しいバージョンのSwiftUIにZStackはコンテンツ表示するため最小限のスペースした取らない仕様になってしまいました。

問題は分かると、私はいろいろ試して、ついに解決策を見つけました。 元々のソースコード

GeometryReader { geo in
    ZStack {
        // サイコロの配置
    }
}

修正後のソースコード

GeometryReader { geo in
    ZStack {
        // サイコロの配置
    }.frame(width: geo.size.width, height: geo.size.height)
}