1

IOS SDK 6 に更新したばかりで、混乱しています。解決策を見つけようとしましたが、失敗しました。

  1. xcodeで新しい「Single View iPad APP」(私はiPad 3を持っています)を作成しました
  2. TARGETS->Summary での縦向きおよび上下逆さまのインターフェイスの向きを無効にしました
  3. シミュレートされたメトリックの「向き」を「横向き」に設定します
  4. 次のコード行をビュー コントローラー ファイルに追加しました。

    - (BOOL)shouldAutorotate {
         return YES;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
        return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
    }
    
    - (NSUInteger)supportedInterfaceOrientations {
        return UIInterfaceOrientationMaskLandscape;
    }
    
    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        NSLog(@"%@", NSStringFromCGRect(self.view.frame));
    }
    
  5. アプリを実行

私の出力は次のとおりです: 2012-10-09 18:18:40.149 TestApp[6165:907] {{20, 0}, {748, 1024}} フレームがそうでない理由を誰かが知っていますか... {{0, 20} , {1024, 748}}私が期待するように? 多分私は何かを逃した!

ありがとうございました!

4

1 に答える 1

0

何も見逃していないと思いますが、ビューコントローラーを でラップするとUINavigationController、フレームが期待どおりに設定されます。

注意: iOS 6 SDK では、UIInterfaceOrientation 定数をマスクとして組み合わせることはできなくなりました。したがって、次のものが必要です。

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationLandscapeLeft;
}

ビュー コントローラーがUIWindow.

于 2012-10-22T18:48:21.867 に答える