- UIViewController を使う
- CCDirector を使う
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return ( interfaceOrientation == UIInterfaceOrientationLandscapeRight ); }
CCDirector を使う方法は、AppDelegateの下記メソッドなどで、目的のOrientationをCCDirectorに設定します。
- (void)applicationDidFinishLaunching:(UIApplication*)application { [[CCDirector sharedDirector] setDeviceOrientation:kCCDeviceOrientationLandscapeLeft]; }CCDirectorを使って設定する時に注意しなければならないのは、先の shouldAutorotateToInterfaceOrientation メソッドでは、UIInterfaceOrientationPortrait の時にYESを返さなければいけないという事と、CCDirectorに設定している kCCDeviceOrientationLandscapeLeft 値は UIDeviceOrientation と同じで、Landscapeモードの場合は UIInterfaceOrientation のLeftとRightが反対の意味になるということです。(UIDeviceOrientationとUIInterfaceOrientationの関係)
どちらが良い方法かと言えば、それは作るアプリによると思います。
例えば AdMaker などの広告を、自身の作成したViewに重ね合わせる時、広告のOrientation は、その UIViewController に依存します。
GameKit フレームワークのデフォルトViewは、すべて GameKit の UIViewController を使用するので、どちらの方法を使おうとも Orientation は正しく判断されます。
0 件のコメント:
コメントを投稿