CYC - 强制转成横屏的方式

来源:互联网 发布:td_lte是什么网络 编辑:程序博客网 时间:2024/05/21 19:43

在项目中经常遇到横竖屏切换,而又有某个特定的界面必须是特定的显示方式(横屏或竖屏).这就需要如下的处理了.

强制转成横屏:

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];        }以上代码支持ARC.

方法二: 通过判断状态栏来设置视图的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;}
0 0
原创粉丝点击