刚刚更新到IOS SDK 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));
}
运行APP
我的输出是: 2012-10-09 18:18:40.149 TestApp [6165:907] {{20,0},{748,1024}} 有人知道为什么框架不是 ... {{0,20},{1024,748}} ,正如我所期待的那样?也许我错过了什么!
谢谢!
答案 0 :(得分:0)
我认为您没有错过任何内容,但如果您使用UINavigationController
包装视图控制器,则框架将按预期设置。
注意:使用iOS 6 SDK,您无法再将任何UIInterfaceOrientation常量组合为掩码。所以你需要:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft;
}
但这并不能解释这个问题,因为当视图控制器是UIWindow
的根控制器时,不会调用preferredInterfaceOrientationForPresentation。