首页 > 移动平台 > 详细

iOS 强制转成横屏的方式 和 通过设备的状态来切换屏幕

时间:2015-01-08 12:41:25      阅读:270      评论:0      收藏:0      [点我收藏+]

强制转成横屏:

if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
            SEL selector = NSSelectorFromString(@"setOrientation:");
            NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
            [invocation setSelector:selector];
            [invocation setTarget:[UIDevice currentDevice]];
            int val = UIInterfaceOrientationLandscapeRight;
            [invocation setArgument:&val atIndex:2];
            [invocation invoke];
        }
}

 方法二: 通过判断状态栏来设置视图的transform属性。

- (void)deviceOrientationDidChange: (NSNotification *)notification

{

    UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];

    CGFloat startRotation = [[self valueForKeyPath:@"layer.transform.rotation.z"] floatValue];

    CGAffineTransform rotation;

    switch (interfaceOrientation) {

        case UIInterfaceOrientationLandscapeLeft:

            rotation = CGAffineTransformMakeRotation(-startRotation + M_PI * 270.0 / 180.0);

            break;

        case UIInterfaceOrientationLandscapeRight:

            rotation = CGAffineTransformMakeRotation(-startRotation + M_PI * 90.0 / 180.0);

            break;

        case UIInterfaceOrientationPortraitUpsideDown:

            rotation = CGAffineTransformMakeRotation(-startRotation + M_PI * 180.0 / 180.0);

            break;

        default:

            rotation = CGAffineTransformMakeRotation(-startRotation + 0.0);

            break;

    }

    view.transform = rotation;

}

 

iOS 强制转成横屏的方式 和 通过设备的状态来切换屏幕

原文:http://www.cnblogs.com/IOS-FU/p/4210307.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!