SwiftUIで向きが変更されたときにUIを更新する

Jan 06 2021

私はSwiftUIを学び始めました。向きが変わったらUIを更新しようとしています。@Environment(\.horizontalSizeClass) var sizeClassビューに追加すると、iphoneシミュレーターが回転するとUIが自動的に更新されます。ただし、iPadシミュレーターは、回転してもUIを更新しません。iPadのUIを更新する方法を教えてください。

回答

nicksarno Jan 06 2021 at 04:27

ヒューマンインターフェイスガイドラインのデバイスサイズクラスを見ると、iPadの幅と高さが横向きモードと縦向きモードの両方で「通常」であることがわかります。

したがって、.horizo​​ntalSizeClassを使用すると、iPhoneとiPadの両方で機能します。iPadを回転させてもsizeClassが変更されないだけです。

https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/

  • GeometryReaderでフレームサイズを設定した場合、デバイスを回転させると自動的に更新されます。
  • ビューに.frame(maxWidth :)を設定するだけでも非常に便利です。これにより、iPadが横向きの場合、ビューのコンテンツが制限されます。約715がうまく機能します。