QA1689 iPadアプリの方向のサポート
2012. 04. 01
質問:iPadアプリケーションではどの方向をサポートしなければならないのですか?
回答:
アプリケーションが全ての方向をサポートすることを強く推奨します。
これにはポートレート、逆ポートレート、左ランドスケープ、右ランドスケープが含まれます。
(例えばポートレートのみなど)1つの方向のみでアプリケーションを実行することが必須の場合、以下の処理を行う必要があります。
アプリケーションを作成する時、UIKitのインターフェイス方向のマクロを使用することを検討してください。
貴方のUIViewControllerクラスで、以下の定数を返す- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientationメソッドを実装する必要があります。
方向のサポートに関する詳細は『iOS ヒューマン インターフェイス ガイドライン』の『デバイスの向きを変えられる(p.11)』を参照してください。
ビューコントローラが回転しない理由については『QA1688 UIViewControllerがデバイスと一緒に回転しないのは何故ですか?』を参照してください。
参考文献
・Technical Q&A QA1689: Technical Q&A QA1689
回答:
アプリケーションが全ての方向をサポートすることを強く推奨します。
これにはポートレート、逆ポートレート、左ランドスケープ、右ランドスケープが含まれます。
(例えばポートレートのみなど)1つの方向のみでアプリケーションを実行することが必須の場合、以下の処理を行う必要があります。
- 現在のデバイスの方向に関係無く、サポートされる方向で起動します。
- ユーザにデバイスの回転を知らせるUI要素の表示を避ける。
- 異なる方向と両方をサポートする。
重要:アプリケーションは常に異なる方向との両方をサポートする必要があります。 具体的には、アプリケーションがポートレートをサポートする場合、UIInterfaceOrientationPortraitとUIInterfaceOrientationPortraitUpsideDownの両方をサポートする必要があります。 アプリケーションがランドスケープをサポートする場合、UIInterfaceOrientationLandscapeLeftとUIInterfaceOrientationLandscapeRightの両方をサポートする必要があります。 |
アプリケーションを作成する時、UIKitのインターフェイス方向のマクロを使用することを検討してください。
貴方のUIViewControllerクラスで、以下の定数を返す- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientationメソッドを実装する必要があります。
- UIInterfaceOrientationIsPortrait(interfaceOrientation):ポートレートのみサポートする場合
- UIInterfaceOrientationIsLandscape(interfaceOrientation):ランドスケープのみサポートする場合
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
注:UIDeviceOrientationを使用する場合、iPadシミュレータは定数UIDeviceOrientationFaceUp、UIDeviceOrientationFaceDownまたはUIDeviceOrientationUnknownをサポートしないことに注意してください。 |
方向のサポートに関する詳細は『iOS ヒューマン インターフェイス ガイドライン』の『デバイスの向きを変えられる(p.11)』を参照してください。
ビューコントローラが回転しない理由については『QA1688 UIViewControllerがデバイスと一緒に回転しないのは何故ですか?』を参照してください。
参考文献
・Technical Q&A QA1689: Technical Q&A QA1689