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

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;
    }
}

你可能感兴趣的:(oc---细节)