デバイスの種類を判定 – 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という変数にアクセスしていますが、userInterfaceIdiomopen 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)

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事