iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
Xcodeで、ターゲットのSummaryのiPhone/iPod Deployment InfoのSupported Device Orienttationsで、対応する向きを選択する。(下記の図の赤い丸で囲まれたボタン)古い資料では、Info.plistのUIInterfaceOrientationキーのカスタマイズが説明されているが、この操作によってInfo.plistが更新される。
四つの項目(Portrait, Upside Down, Landscape Left, Landscape Right)の選択順には意味があって、最初に選択された物が、起動時の画面の向きという事になるようだ。
ユーザーがiPhoneの向きを変更するのに追従して、自動で画面の向きを変更したい場合は、ビュー・コントローラのshouldAutorotateToInterfaceOrientation:メソッドをカスタマイズする。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
BOOL result = YES;
if (interfaceOrientation == UIInterfaceOrientationPortrait)
result = YES;
else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
result = YES;
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight)
result = YES;
else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
result = NO;
return result;
}
例えば、上記の例は、上下が逆さま(UIInterfaceOrientationPortraitUpsideDown)以外が自動で向きが変わるというコードだ。
Appleは、 <br>UIInterfaceOrientationIsLandscape <br>UIInterfaceOrientationIsPortrait <br>を使えと推奨していますが、それだとUP/DOWNとLEFT/RIGHTが区別できないのでそれを区別したい状況があるとマクロを使っていいい物かどうか悩みます。