📚
SwiftUIでtrait(画面幅)の変更を検知してViewをアップデートするには
iPhoneの端末回転、iPadでのSplitViewなど、アプリを表示する画面幅が変更された場合にViewのレイアウトなどの表示を変えたい時がある。
その際には、Viewで
@Environment(\.verticalSizeClass) var verticalSizeClass
を宣言して使う。
使用例はこちら。
if self.verticalSizeClass == .compact { // or .regular
} else {
}
verticalSizeClassはオプショナルであることにも注意。
VStack(alignment: .center) {
// content
}
.scaleEffect((self.verticalSizeClass ?? .compact) == .compact ? 0.75 : 1.0 )
Discussion