タイトル通りです。違うんです。
iPhone5で試してびっくりしました(;´Д`)
対応方法など調べたりしたのでメモ的なものを…
shouldAutorotateを使う
今まで画面の向きが切り替わる時に使われていた
shouldAutorotateToInterfaceOrientation
という関数は全く呼ばれなくなってしまったようです。
対応していないと縦専用に作った画面が無残なことに…(実際なりました)
あまりにもひどい、りんごの罠です。
代わりに使われるのが
- (BOOL)shouldAutorotate;
と
- (NSUInteger)supportedInterfaceOrientations;
のようです。
ただ画面を固定したい!という時はNOを返せばOKです。
向きが変わる方向によって何か特別な処理を入れたい、という場合は
shouldAutorotate関数の中でどの向きに変わったか調べられます。
・例
-(BOOL)shouldAutorotate{ //向きを調べる int orientation = [[UIDevicecurrentDevice] orientation]; switch ( orientation ) { caseUIDeviceOrientationPortrait: // 普通の向き break; caseUIDeviceOrientationLandscapeLeft: // 左向き break; caseUIDeviceOrientationLandscapeRight: // 右向き break; caseUIDeviceOrientationPortraitUpsideDown: // 逆さ向き break; } return YES; // 向きを変える }
もう一つのsupportedInterfaceOrientations関数ですが、
こちらはshouldAutorotateでYESと返された時だけ呼ばれて、
返り値に定数を指定することでどの向きをサポートするか選べるようです。
UIInterfaceOrientationMaskPortrait -> 縦画面のみ
UIInterfaceOrientationMaskLandscape -> 左右横画面対応
UIInterfaceOrientationMaskAll -> 全ての向き対応
といった感じです。
・例
- (NSUInteger)supportedInterfaceOrientations { // 左右横向きで回転する return UIInterfaceOrientationMaskLandscape; }
|
|
: : :::::::,. -─´、て
::: :: :::Σco===、!,_
: : :: :::::l´i(ノリハノリ) iPhoneでもこういう対応って必要なんですね…
: : :::::ルlリ⊃⊂ヽ
: : ::::(( //xxxxヽ、─────────────────
/~~~
./
ピンバック: 【iPhoneアプリ】UIDeviceクラスを利用した端末情報、バッテリ情報、画面の向きを取得する方法 | 桜花満開/テンシホタル