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

来源:互联网 发布:淘宝内容营销案例 编辑:程序博客网 时间:2024/06/05 12:44

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