我想在特定视图出现时更改设备方向。我得到了很多关于当方向改变时要采取的行动的信息,但我没有得到如何以编程方式改变设备方向。请注意,我的其他视图必须保持默认方向。
答案 0 :(得分:0)
[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];
请注意,这不是API文档中UIDevice框架的一部分,因此Apple可能拒绝使用此文档的应用程序。
答案 1 :(得分:0)
您可以使用CGAffineTransforms
而不是私有API更改视图的方向。您必须更改UIStatusBarOrientation
方向以匹配新方向,并找到旋转视图的角度:
例如,如果您的视图处于横向方向,并且您希望它以纵向方式返回。
CGAffineTransform transform = CGAffineTransformIdentity;
switch ([[UIApplication sharedApplication] statusBarOrientation]) {
case UIInterfaceOrientationLandscapeLeft:
transform = CGAffineTransformMakeRotation(M_PI_2);
break;
case UIInterfaceOrientationLandscapeRight:
transform = CGAffineTransformMakeRotation(-M_PI_2);
break;
default:
break;
}
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
[UIView animateWithDuration:0.2f animations:^ {
[view setTransform:transform];
}];
[view setFrame:CGRectMake(0, 0, 320, 480)];
[view setNeedsLayout];