デバイスの種類を判定 – iOS
実装
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
switch UIDevice.current.userInterfaceIdiom {
case .phone:
print("phone")
break
case .pad:
print("pad")
break
case .unspecified: break
case .tv:
print("tv")
break
case .carPlay:
print("carPlay")
break
}
}
説明
userInterfaceIdiom
という変数にアクセスしていますが、userInterfaceIdiom
はopen var userInterfaceIdiom: UIUserInterfaceIdiom { get }
という変数であり、open var userInterfaceIdiom: UIUserInterfaceIdiom { get }
という変数は、下記のようにemiuで定義されています。
public enum UIUserInterfaceIdiom : Int {
case unspecified
@available(iOS 3.2, *)
case phone // iPhone and iPod touch style UI
@available(iOS 3.2, *)
case pad // iPad style UI
@available(iOS 9.0, *)
case tv // Apple TV style UI
@available(iOS 9.0, *)
case carPlay // CarPlay style UI
}
UIUserInterfaceIdiomにアクセスすることで、デバイスを判定することができます。使い方は下記のように使います。print(UIDevice.current.userInterfaceIdiom)