IOS6:景观中的视图大小

时间:2012-10-09 16:32:22

标签: xcode ipad uiview uiviewcontroller ios6

刚刚更新到IOS SDK 6,现在我很困惑。试图找到解决方案,但我失败了。

  1. 在xcode
  2. 中创建了一个新的“Single View iPad APP”(我有一台iPad 3)
  3. 残疾人像& TARGETS->摘要
  4. 中的颠倒界面方向
  5. 将模拟指标“方向”设置为“横向”
  6. 在视图控制器文件中添加了以下代码行:

    - (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));
    }
    
  7. 运行APP

  8. 我的输出是: 2012-10-09 18:18:40.149 TestApp [6165:907] {{20,0},{748,1024}} 有人知道为什么框架不是 ... {{0,20},{1024,748}} ,正如我所期待的那样?也许我错过了什么!

    谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您没有错过任何内容,但如果您使用UINavigationController包装视图控制器,则框架将按预期设置。

注意:使用iOS 6 SDK,您无法再将任何UIInterfaceOrientation常量组合为掩码。所以你需要:

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationLandscapeLeft;
}

但这并不能解释这个问题,因为当视图控制器是UIWindow的根控制器时,不会调用preferredInterfaceOrientationForPresentation。