美文网首页
iOS Orientation

iOS Orientation

作者: 纵横而乐 | 来源:发表于2015-10-17 16:52 被阅读582次

    在对待orientation上,经常需要在支持转屏和不支持转屏的界面之间进行切换,可能是从navigation controller中 支持转屏的帧切换到不支持转屏的帧,或者从支持转屏的帧切回到不支持转屏的帧,怎样做到流畅的切换,也就是从比如横屏流畅地切到竖屏呢,这个问题目前我还没有解决

    目前的做法仍然停留在从横屏切换到只支持坚屏的场景时,需要手动把设备的orientation设置回portrait,比较蛋疼,因为看到微信在从横屏切回到坚屏的时候,是可以做到从portrait方向将controller切回来,在切换效果的时候,旧的横屏controller仍然维持横屏。(朋友圈跳到某分享网页再切回朋友圈的时候)

    切换orientation的方法如下:

    SEL selector =NSSelectorFromString(@"setOrientation:");

    NSInvocation*invocation = [NSInvocationinvocationWithMethodSignature:[UIDeviceinstanceMethodSignatureForSelector:selector]];

    [invocationsetSelector:selector];

    [invocationsetTarget:[UIDevicecurrentDevice]];

    intval = orientation;

    [invocationsetArgument:&valatIndex:2];

    [invocationinvoke];

    [UIViewController attemptRotationToDeviceOrientation];

    当然,也有上述方法的objc_msgSend版本:

    if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)])

    {

    objc_msgSend([UIDevice currentDevice], @selector(setOrientation:), UIInterfaceOrientationPortrait );

    }

    相关文章

      网友评论

          本文标题:iOS Orientation

          本文链接:https://www.haomeiwen.com/subject/qqcacttx.html