【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学習に使用した参考書