我打电话:
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger: UIInterfaceOrientationLandscapeLeft]
forKey:@"orientation"];
然后我退出:
NSLog(@" = %@",NSStringFromCGRect(self.view.bounds));
我得到了:
2015-04-06 11:04:13.02 [1032:262526] = {{0, 0}, {375, 667}}
这是在iPhone 6上。为什么bounds
没有改变?
所以我在另一个答案中看到[UIScreen mainScreen].bounds
在使用setValue:forKey
以编程方式设置轮换后给出了正确的尺寸。
然而,为什么view
仍有纵向框架?这是延迟回应吗?我是否必须自己旋转视图?
答案 0 :(得分:0)
如果您想更改界面方向,那么您应该关注此回调
interfaceOrientation property
– shouldAutorotateToInterfaceOrientation:
+ attemptRotationToDeviceOrientation
– rotatingHeaderView
– rotatingFooterView
– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:
我建议你也看看这个方法。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
请参阅此docs
答案 1 :(得分:0)
调整你的代码
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
if UIInterfaceOrientationLandscapeLeft{//code} else if UIInterfaceOrientationLandscapeRight{//code}