✅基本の判定方法
|
1 2 3 4 5 |
if UIDevice.current.userInterfaceIdiom == .phone { // iPhone } else if UIDevice.current.userInterfaceIdiom == .pad { // iPad } |
ポイント
.phone→ iPhone / iPod touch.pad→ iPad- 他にも
.tvや.mac(Mac Catalyst)などがあります
✅ SwiftUIっぽく使うなら
View内で分岐する場合:
|
1 2 3 4 5 6 7 8 9 10 11 |
var isPad: Bool { UIDevice.current.userInterfaceIdiom == .pad } var body: some View { if isPad { Text("iPadレイアウト") } else { Text("iPhoneレイアウト") } } |
⚠️ 注意(重要)
「iPhoneかiPadか」で分けるより、実はこういう設計の方がApple的には推奨です👇
👉 サイズクラスで分岐
|
1 2 3 4 5 6 7 |
@Environment(\.horizontalSizeClass) var sizeClass if sizeClass == .compact { // iPhoneっぽいUI } else { // iPadっぽいUI } |
なぜ?
- iPadでも分割表示だとiPhone風になる
- 将来のデバイス(折りたたみ等)にも対応しやすい
コメント