美文网首页
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