第一步:
在AppDelegate中加入
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
return UIInterfaceOrientationMaskPortrait;
}
在需要转屏的
viewDidLoad中加入
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(DeviceOrientation:)
name:UIDeviceOrientationDidChangeNotification
object:nil
];
-(void)DeviceOrientation:(NSNotification *)noti
{
UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
switch (orientation)
{
case UIDeviceOrientationPortrait: {
[UIView animateWithDuration:0.25 animations:^{
self.view.transform = CGAffineTransformMakeRotation(0);
self.view.frame = CGRectMake(0, 0, WIDTH, HEIGHT);
}];
}
break;
case UIDeviceOrientationLandscapeLeft: {
[UIView animateWithDuration:0.25 animations:^{
self.view.transform = CGAffineTransformMakeRotation(M_PI*0.5);
self.view.frame = CGRectMake(0, 0, WIDTH, HEIGHT);
}];
}
break;
case UIDeviceOrientationLandscapeRight: {
[UIView animateWithDuration:0.25 animations:^{
self.view.transform = CGAffineTransformMakeRotation(-M_PI*0.5);
self.view.frame = CGRectMake(0, 0, WIDTH, HEIGHT);
}];
}
break;
default:
break;
}
}