1

IPADのすべての向きをサポートしたいユニバーサルアプリを開発しましたが、iPhoneの場合はUIInterfaceOrientationPortraitとUIInterfaceOrientationPortraitUpsideDownだけが必要です

-(BOOL)shouldAutorotate {
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
        return NO;
    }else{
        return YES;
    }
}
- (NSUInteger)supportedInterfaceOrientations{

     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
         return UIInterfaceOrientationMaskPortrait;
     }else{
        return UIInterfaceOrientationMaskAll;
     }

} 
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){

    return interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown ;
     }else{
         return YES;
     }

}

それでも横向きでの向きが止まらない

4

2 に答える 2

6

以下の説明のように、 [概要]からiPhoneUIInterfaceOrientationPortraitのとUIInterfaceOrientationPortraitUpsideDownを除く他のすべての向きを無効にするだけです。写真では上下反転が無効になっていますので、有効にしてください。ありがとう。

ここに画像の説明を入力

于 2013-07-02T08:56:40.510 に答える
1

縦向きを逆さまにするには、ナビゲーション コントローラーを使用する必要があります

1) UINavigationController の新しいサブクラスを作成し、shouldAutorotate メソッドと supportedInterfaceOrientation メソッドを追加しました。

     // MyNavigationController.h:
     #import <UIKit/UIKit.h>

     @interface MyNavigationController : UINavigationController

     @end

    // MyNavigationController.m:
     #import "MyNavigationController.h"
     @implementation MyNavigationController
     ...
    - (BOOL)shouldAutorotate {
    return YES;
     }

     - (NSUInteger)supportedInterfaceOrientations {
     return UIInterfaceOrientationMaskAll;
     }
    ...
       @end

2) AppDelegate では、新しいサブクラスを使用してルート ViewController (introScreenViewController、UIViewController サブクラス) を表示し、self.window.rootViewController を設定したので、次のようになります。

      nvc = [[MyNavigationController alloc]              initWithRootViewController:introScreenViewController];
     nvc.navigationBarHidden = YES;
      self.window.rootViewController = nvc;
      [window addSubview:nvc.view];
   [window makeKeyAndVisible];
于 2013-07-02T09:14:41.500 に答える