您的位置:首页 > 移动开发 > IOS开发

IOS屏幕旋转的检测 与 强行切换

2017-05-22 22:41 375 查看
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 UIInterfaceOrientationMaskLandscape
4000
Left |UIInterfaceOrientationMaskLandscapeRight;
break;
case 4:
return UIInterfaceOrientationMaskPortrait;
break;
default:
return UIInterfaceOrientationMaskPortrait;
break;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: