Вы можете изменить ориентацию вида, используя 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];