iOS Orientation

在对待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 中横竖屏切换的功能,在开发iOS app中总能遇到。以前看过几次,感觉简单,但是没有敲过代码实现,最近又碰...
    零度_不结冰阅读 2,243评论 0 0
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 1.监听屏幕旋转方向 在处理iOS横竖屏时,经常会和UIDeviceOrientation、UIInterface...
    彬至睢阳阅读 2,558评论 1 6
  • 本文旨在用最简洁的语言向不打算深入了解这一行业的伙伴解析保险业的一些基本情况,主要回答:①保险是什么?②为什么要买...
    时无诳语阅读 617评论 0 2
  • 早起 练琴练声 语文课 政治课 午饭 练琴 钢琴课 聚餐 昨天下午的眼泪流了半小时,可能是对过去的怀念和惋惜吧,本...
    W宓阅读 262评论 0 0