美文网首页
iOS开发--屏幕旋转的问题

iOS开发--屏幕旋转的问题

作者: 一线码农 | 来源:发表于2017-03-05 23:26 被阅读60次

首先,在iOS中展示界面的方式有两种,push和modal
那么,在app中如果想要实现随心所欲的屏幕旋转,就要分两种情况来看
1,使用push,也就是说我们的控制器要嵌套在一个UINavigationController下来展示,我们需要以个继承了UINavigationController的子类来重写一下三个方法

- (BOOL)shouldAutorotate{
    return self.topViewController.shouldAutorotate;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations{
    return self.topViewController.supportedInterfaceOrientations;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
    return self.topViewController.preferredInterfaceOrientationForPresentation;
}

然后在相应的控制器里也要重写着三个方法,例如这样

- (BOOL)shouldAutorotate{
    return self.autoRotate;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations{
    return self.mask;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
    return self.orientation;
}

这里重写的目的是为了真正控制当前的屏幕方向
重写这三个方法也是做一个铺垫,真正发挥改变屏幕方向的代码是

    [[UIDevice currentDevice] setValue:@(UIDeviceOrientationLandscapeLeft) forKey:@"orientation"];

只有重写了前面的三个方法,上面的代码才会起作用
以上的步骤的确可以实现屏幕旋转,但是无论是modal还是push 我都发现还存在问题,modal 的情况下会偶发控制器的view 旋转了但是屏幕的方向没有变,push 的问题发生打概率更大一些,就是当从A到B变横屏,然后从B到C变竖屏,再从C返回B能够变回横屏,然后从B返回A也能变回竖屏,这时候再从Apush到B则不能变横屏,这是目前遇到的问题,记录下来,暂时留在这里,明天继续解决。

相关文章

  • 屏幕旋转

    屏幕旋转 推荐文档 了解UIWindow——UIWindow实践 iOS屏幕旋转问题总结 IOS:屏幕旋转与变换 ...

  • iOS开发--屏幕旋转的问题

    首先,在iOS中展示界面的方式有两种,push和modal那么,在app中如果想要实现随心所欲的屏幕旋转,就要分两...

  • Runtime解决屏幕旋转问题

    前言 大家或许在iOS程序开发中经常遇到屏幕旋转问题,比如说希望指定的页面进行不同的屏幕旋转,但由于系统提供的方法...

  • iOS Rotation

    iOS屏幕旋转学习笔记iOS开发中使用屏幕旋转功能的相关方法 1、基本知识点解读 了解屏幕旋转首先需要区分两种 o...

  • ios控制屏幕旋转及相关问题

    ios控制屏幕旋转及相关问题 测试开发环境: Xcode 11.3语言环境: Swift 5.0 [TOC] 一、...

  • iOS 屏幕旋转处理

    iOS 屏幕旋转处理 在 iOS 设备上, 屏幕旋转是个挺坑比的问题. 苹果希望 app 对整个 app 做统一的...

  • iOS开发:屏幕的旋转

    Device Orientation:设备方向 UIInterfaceOrientation:界面方向 屏幕旋转的...

  • iOS-屏幕旋转截屏相关

    本篇收录各种屏幕旋转知识点等. 1.详解iOS开发中处理屏幕旋转的几种方法2.iOS 个别页面强制横屏,其他页面竖...

  • iOS屏幕方向控制

    iOS屏幕旋转学习笔记 - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发...

  • iOS开发之屏幕旋转

    开发了很久一直没有用到过屏幕旋转,一般app设置固定竖屏也就可以了,但是涉及到视频播放的时候全屏播放就是不得不实现...

网友评论

      本文标题:iOS开发--屏幕旋转的问题

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