mark – 屏幕的手动切换
[[UIDevice currentDevice]setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeRight]forKey:@"orientation"];
[[[self topViewController] class] attemptRotationToDeviceOrientation];
mark – 检测屏幕的切换
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
//回调
/**屏幕旋转的通知回调*/
- (void)orientChange:(NSNotification *)noti {
// NSDictionary* ntfDict = [noti userInfo];
UIDeviceOrientation orient = [UIDevice currentDevice].orientation;
switch (orient) {
case UIDeviceOrientationPortrait:
break;
case UIDeviceOrientationLandscapeLeft:
break;
case UIDeviceOrientationPortraitUpsideDown:
break;
case UIDeviceOrientationLandscapeRight:
break;
default:
break;
}
}
mark – 关于控制屏幕的切换
/**
1 left 2 right 3 left andRight 4 up
*/
@property (nonatomic,assign) NSInteger rotatingNumer;
//在appdelegate里面添加如下代码 通过rotatingNumer 来控制屏幕旋转的方向
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
switch (self.rotatingNumer) {
case 1:
return UIInterfaceOrientationMaskLandscapeLeft;
break;
case 2:
return UIInterfaceOrientationMaskLandscapeRight;
break;
case 3:
return UIInterfaceOrientationMaskLandscapeLeft |UIInterfaceOrientationMaskLandscapeRight;
break;
case 4:
return UIInterfaceOrientationMaskPortrait;
break;
default:
return UIInterfaceOrientationMaskPortrait;
break;
}
}