🐙

iPhoneのUpside Down方向の扱いをまとめました

2 min read

知ってるようで知らなかったので、まとめます。

前提

Xcodeでプロジェクトファイルの[Deployment Info]の↓で端末の回転の許可不許可を選べます。

デフォルトではUpside Downはオフ

iOSの新規作成プロジェクトでは、デフォルトで回転が許可になっています。
ただしその回転方向は四方向ではなく、

  • Portrait
  • Landscape Left
  • Landscape Right

の三方向です。

  • Upside Down(逆さま)

はチェックがはずれています。

Upside Downが有効にならない端末がある

Upside Down方向にどうしても回転させないといけない要件はそんなにないとは思うので、
基本はデフォルトのままにするか、回転を不許可にするためにPortraitだけにするかの二択になるかと思います。

ただ何らかの事情でUpside Downを有効にしたい場合の注意点です。

https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/

HIGの「General Layout Considerations」のnote部分に、こんな記述があります。

NOTE
By default, view controllers support all orientations on iPad and all orientations except upside-down portrait on iPhone (for developer guidance, see supportedInterfaceOrientations). Some devices, such as iPhone X, don’t support upside-down portrait mode, regardless of whether your app supports it.

注意
デフォルトでは、ViewControllerはiPadだと全方向、iPhoneだとUpside down以外の全方向をサポートしています(開発者ガイドライン: supportedInterfaceOrientations)。端末(たとえばiPhone X)によっては、アプリ側のサポート状況によらず、Upside downモードをサポートしていません。
(拙訳)

ホームボタンがないiPhone端末(iPhone X以降)はデバイス側で禁止されている

Apple Developer Documentには、さらに詳しい記述があります。

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621435-supportedinterfaceorientations

All iPadOS devices support the portraitUpsideDown orientation. It’s best practice to enable it for the iPad idiom. iOS devices without a Home button, such as iPhone 12, don’t support this orientation. You should disable it entirely for the iPhone idiom.

iPadOS端末はUpside downモードをサポートしています。
iPad向けの場合、Upside downモードを有効にするのがベストプラクティスです。
ホームボタンのないiOS端末はUpside downをサポートしません。
iPhone向けの場合、Upside downモードを無効にするのがベストプラクティスです。
(拙訳)

それでもホームボタンなしiPhoneを逆さまにしたい

試してはいませんが、やりようはあるみたいです。
ViewController上でsupportedInterfaceOrientations()をoverrideするとできるみたいです。

https://qiita.com/hikarut/items/c3bea991623a9a26f238

まとめ

  • ホームボタンなしのiOS端末はUpside Downが無効です。
  • ホームボタンありのiOS端末でも、デフォルト設定はUpside Downが無効にされています。
  • ホームボタンありのiOS端末なら、プロジェクトファイルにチェックを入れればUpside Downを有効にできます。
  • ただしiPadではUpside Downを有効にするのがベストプラクティスです。
  • 故にiPhoneではUpside Downを無効、iPadでは有効にする、と単純に認識しておけばいいかと思いました

Discussion

ログインするとコメントできます