【Swift4】iPhone・iPadなどの機種判定し処理を振り分ける方法【iOS9】
iPhoneやiPadなどの機種を判定する方法は2種類あります。
1.iPhone・iPad・AppleTVなどをざっくり判定
if UIDevice.current.userInterfaceIdiom == .phone {
// iPhone
}
else if UIDevice.current.userInterfaceIdiom == .pad {
// iPad
}
else if UIDevice.current.userInterfaceIdiom == .tv {
// AppleTV
}
else if UIDevice.current.userInterfaceIdiom == .carPlay {
// CarPlay
}
else {
// それ以外、iPod Touchなど?
}
UIDeviceのuserInterfaceIdiomを使用した判定方法です。
iphone、ipad、AppleTV、carplayの4種類しか判定できません。
より細かい判定をしたい場合は以下をお試しください。
2.iPhone・iPadをより細かく判定
// iPhoneの機種判定
switch (UIScreen.main.nativeBounds.height) {
case 480:
// iPhone
// iPhone 3G
// iPhone 3GS
break
case 960:
// iPhone 4
// iPhone 4S
break
case 1136:
// iPhone 5
// iPhone 5s
// iPhone 5c
// iPhone SE
break
case 1334:
// iPhone 6
// iPhone 6s
// iPhone 7
// iPhone 8
break
case 2208:
// iPhone 6 Plus
// iPhone 6s Plus
// iPhone 7 Plus
// iPhone 8 Plus
break
case 2436:
//iPhone X
break
default:
break
}
// iPadの機種判定
switch (UIScreen.main.nativeBounds.height) {
case 1024:
// iPad Mini
// iPad
// iPad 2
break
case 2048:
// iPad Mini 2
// iPad Mini 3
// iPad Mini 4
// iPad 3
// iPad 4
// iPad Air
// iPad Air 2
// iPad Pro 9.7
break
case 2224:
// iPad Pro 10.5
break
case 2732:
// iPad Pro 12.9
break
default:
break
}
画面サイズを利用した判定方法です。
先ほどと違い、iphone8やiphone8 Plus、iphone Xの判定までできるようになっています。
userInterfaceIdiomの方はざっくり判定できて、画面サイズからのほうがより細かく判定でき流感じですね。
用途に合わせて使い分けるといいでしょう。