[解決済み】SwiftでUI_USER_INTERFACE_IDIOM()を使って現在のデバイスを検出する
2022-03-31 10:10:18
質問
に相当するものは何ですか?
UI_USER_INTERFACE_IDIOM()
SwiftでiPhoneとiPadを区別するには?
私は
Use of unresolved identifier
というエラーが発生します。
解決方法は?
Swiftで作業するときは
enum
UIUserInterfaceIdiom
と定義されている。
enum UIUserInterfaceIdiom : Int {
case unspecified
case phone // iPhone and iPod touch style UI
case pad // iPad style UI (also includes macOS Catalyst)
}
として使えるわけです。
UIDevice.current.userInterfaceIdiom == .pad
UIDevice.current.userInterfaceIdiom == .phone
UIDevice.current.userInterfaceIdiom == .unspecified
あるいはSwitch文で。
switch UIDevice.current.userInterfaceIdiom {
case .phone:
// It's an iPhone
case .pad:
// It's an iPad (or macOS Catalyst)
@unknown default:
// Uh, oh! What could it be?
}
UI_USER_INTERFACE_IDIOM()
はObjective-Cのマクロで、次のように定義されています。
#define UI_USER_INTERFACE_IDIOM() \ ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? \ [[UIDevice currentDevice] userInterfaceIdiom] : \ UIUserInterfaceIdiomPhone)
また、Objective-Cで作業している場合でも
UI_USER_INTERFACE_IDIOM()
マクロは、iOS 3.2 以下をターゲットとする場合にのみ必要です。iOS 3.2 以降にデプロイする場合は
[UIDevice userInterfaceIdiom]
を直接入力します。
関連
-
[解決済み】Xcode 10.2.1 Command PhaseScriptExecutionが0以外の終了コードで失敗した。
-
[解決済み】iOS 9.0より前のUIStackView
-
[解決済み] Xcodeエラー "Could not find Developer Disk Image" が発生する。
-
[解決済み] なぜSwiftでUIViewControllerのデフォルトのsuper.init()を呼び出すことができないのでしょうか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] Swiftの@selector()?
-
[解決済み】iOSがiPadを使用しているかどうかを検出する。
-
[解決済み】デバイスがiPhone Xであるかどうかを検出します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】arm64アーキテクチャの未定義シンボルについて
-
[解決済み】クラスは両方で実装されており、どちらかが使用されることになります。どちらが未定義か
-
[解決済み] "CFNetwork SSLHandshake failed (-9806)" の解決方法について
-
[解決済み] Swiftエラー。変数がそれ自身の初期値内で使用されている
-
[解決済み] swiftで「floor」が使用できない
-
[解決済み] 新しい Swift クラスの void 関数で予期しない非 void の戻り値が発生する。
-
[解決済み] キャッチできない例外 'NSInvalidArgumentException', reason: '-[_.AppDelegate add:]: unrecognized selector' により、アプリを終了する。
-
[解決済み] UICollectionView: 非Nilのレイアウトパラメータで初期化する必要があります。
-
[解決済み] 指定されたホスト名を持つサーバーが見つからなかった
-
[解決済み] Xcodeで実行ファイルが無効なエンタイトルメントで署名されてしまう