【Swift】デバイス(iPhone/iPadなど)を識別する方法!UIDeviceクラスとは

この記事からわかること

  • Swiftデバイス(iPhone/iPadなど)を識別する方法の種類
  • UIDevice使い方プロパティ
  • userInterfaceIdiom指定値種類

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

デバイス(iPhone/iPadなど)を識別する方法

Swiftで使用されているデバイスを識別するにはUIDeviceクラスを使用して以下のように判定することができます。

iPadの場合

if UIDevice.current.userInterfaceIdiom == .pad {
  // 処理  
}

iPhoneの場合

if UIDevice.current.userInterfaceIdiom == .phone {
  // 処理  
}

シミュレーターで動作確認する際も正常に機能しますのでデバイスによって処理を分岐させたい時に使えるコードになります。

使用例

以下記事でも使用されていますので使い方の参考にしてください。

UIDeviceクラスとは?

@MainActor  class UIDevice : NSObject

UIDeviceクラスとは現在のデバイス情報を保持するクラスでデバイス名やモデル名だけでなく、画面の向きや充電状態など様々な情報を参照することが可能です。

使用方法とcurrentプロパティ

使用方法は明示的にインスタンス化するのではなく、アプリ起動後には既にUIDeviceクラスのcurrentプロパティに現在のデバイスを表すインスタンスオブジェクトが格納されているのでここから参照します。

class var current: UIDevice { get }

UIDeviceクラスのプロパティの種類

プロパティ名 概要
var name: String デバイスの名前
var systemName: String デバイスのOSの名前
var systemVersion: String OSの現在のバージョン
var model: String デバイスのモデル
var userInterfaceIdiom: UIUserInterfaceIdiom 現在のデバイスで使用するインターフェイスのスタイル
var orientation: UIDeviceOrientation デバイスの物理的な向き
var batteryLevel: Float デバイスのバッテリー充電レベル

userInterfaceIdiomでデバイスを識別

デバイスを識別するには現在のデバイスで使用するインターフェイスのスタイルが格納されているuserInterfaceIdiomプロパティの値を参照します。値は列挙型UIUserInterfaceIdiomで定義されています。

var userInterfaceIdiom: UIUserInterfaceIdiom { get }

インターフェイスの指定値

enum UIUserInterfaceIdiom : Int, @unchecked  Sendable {
  case unspecified // 不特定のイディオム
  case phone       // iPhoneおよびiPod touch
  case pad         // iPad
  case tv          // tvOS および Apple TV
  case carPlay     // CarPlay
  case mac         // Mac
}

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

私がSwift UI学習に使用した参考書

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index