工作中遇到这样一个需求,在当手机投影到airDrop设备时要跟投影的设备屏幕方向保持一致,用户锁定时也要随投影设备旋转,用户没有锁定时只随投影设备旋转,而不能随手机旋转。

花了一上午时间,搞定了这个问题,发现网上的资料都是iOS8之前的,很多都是过时的,或都不够全面,现在总结如下:

1.beginGeneratingDeviceOrientationNotifications endGeneratingDeviceOrientationNotifications

这两个是控制屏幕旋转的通知,通知在手机转动时触发,触发后会执行下面的方法

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window  NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;

-(BOOL)shouldAutorotate

-(UIInterfaceOrientationMask)supportedInterfaceOrientations

其中后两个是写在VC中的,只能在present出来的VC才能生效,第一个是写在AppDelegate中,全局生效。

在屏幕要旋转后会执行

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator NS_AVAILABLE_IOS(8_0);

只要屏幕转动都会触发,就算手机没有转动强制横竖屏有屏幕有转动也会触发。

2.关于方向的几个枚举

UIInterfaceOrientationMask:支持的方向。

UIInterfaceOrientation:手机界面的方向。

UIDeviceOrientation:设备当前的方向,这个是个坑,用户锁定了后永远是Unknown,而且没锁定的情况下也不是很准确。

这几个枚举在不注意的情况下可能会搞混,注意下就行

3.强制横竖屏

网上的方法有好几种,最后发现还是下面这个有用,其他的都不行。

NSNumber *orientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];

[[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"];

注意这个方法执行前要保证supportedInterfaceOrientations一定要包括要强制旋转的方向,不然会闪退,要想保证不出现闪退可以supportedInterfaceOrientations设成ALL

iOS8之后苹果屏幕旋转的一些问题总结相关推荐

  1. 怎么设置苹果手机的小圆点_苹果屏幕旋转怎么设置?关于苹果手机设置的一些小技巧...

    苹果屏幕旋转怎么设置?在平常使用手机观看视频的时候,很多人希望手机屏幕可以自己旋转为横屏状态,在使用微信聊天的时候再自动转为竖屏,这种切换可以直接利用控制中心的一个功能来实现. 如何开启苹果手机的屏幕 ...

  2. 苹果屏幕旋转怎么设置?关于苹果手机设置的一些小技巧

    苹果屏幕旋转怎么设置?在平常使用手机观看视频的时候,很多人希望手机屏幕可以自己旋转为横屏状态,在使用微信聊天的时候再自动转为竖屏,这种切换可以直接利用控制中心的一个功能来实现. 如何开启苹果手机的屏幕 ...

  3. 苹果屏幕旋转怎么设置_笔记本电脑维修|笔记本电脑屏幕旋转90度怎么复原

    大家在使用笔记本电脑的时候,有没有遇到过这样一个问题.在某一次打开电脑的时候,突然就发现笔记本电脑的屏幕旋转了90度,而且不管打开哪个界面,都是旋转了90度的.遇到这个问题的时候,有小伙伴不知道怎么解 ...

  4. iOS屏幕旋转 浅析

    一.两种orientation 了解屏幕旋转首先需要区分两种orientation 1.device orientation 设备的物理方向,由类型UIDeviceOrientation表示,当前设备 ...

  5. 怎么设置苹果手机的小圆点_iPhone屏幕旋转怎么设置?关于苹果手机设置的一些小技巧...

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都会有分享,都是免费订阅,请您放心关注. 注:本文转载自网络,不代 ...

  6. 苹果6怎样打开html,苹果6屏幕旋转怎么设置 怎么开启和关闭【图文】

    手机在使用的过程中,通常都会有两种状态,横屏与竖屏,大家的使用习惯不一样,所喜欢的状态也不一样,而且手机都会有屏幕自动旋转的情况,它会根据手机的摆放状态自己切换,比较方便大家使用,当然这个功能也可以关 ...

  7. 苹果主屏幕按钮怎么设置_Mac小技巧 Mac屏幕旋转怎么设置

    相信不少的Mac用户在躺下看电子书或者电影的时候,都希望可以将Mac的电脑屏幕进行旋转!其实,这个操作是可以实现的呢!那么,你知道Mac屏幕旋转怎么设置吗?想要知道答案的话就快来阅读下面的文章吧!今天 ...

  8. iOS传感器:实现一个随屏幕旋转的图片

    作者 非典型技术宅 关注 2017.05.24 17:22* 字数 1568 阅读 351评论 7喜欢 14 在写上一个动画系列的时候学到了非常多的知识,也认识了很多人.例如受邀进入了某个神秘的动效组 ...

  9. 视图控制器及屏幕旋转

    自定义View中 @implementation Rootview - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:fr ...

最新文章

  1. ElasticSearch5.x实践_day05_03_Mapping_Meta-Fields
  2. 在Android Studio中打开DDMS
  3. linux文件查找工具,分享|Linux 中一种友好的 find 替代工具
  4. 计算机网络基础概念知识笔记
  5. Fedora 17删除旧内核的操作
  6. 业务逻辑数据层SqlDataSourcesql的输入参数
  7. 蓝桥杯:试题 历届真题 修改数组【第十届】【省赛】【研究生组】Java实现
  8. css固定定位与绝对定位的区别
  9. python 下采样和上采样
  10. 《计算机网络基础》考试大纲
  11. 直播无线领夹式麦克风
  12. AUTOSAR 基础软件的内在安全
  13. 计算机基础知识——二进制
  14. [剑指Offer]-把数字翻译成字符串
  15. 【事件图谱】事件抽取与事件关系抽取
  16. Linux运维笔记-日常操作命令总结(1)
  17. 微信小程序云开发———CMS
  18. Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
  19. AI实战营第二期——课程目录
  20. 企业宣传画册印刷产品的作用和功能

热门文章

  1. 三年级上册计算机计划书,三年级上册期末复习计划书
  2. AB测试平台的那些事
  3. 差异化服务(Differentiated Services)
  4. QQ的改版和Skype的固执,取消离线与坚守离线,相反的做法与相反的结果,虽然是产品上的纠结,却让我看到了未来的影子。...
  5. 计算机二级考试中所有判断题(含答案)
  6. history.pushState() 给网站添加和修改浏览历史记录
  7. Linux终端命令(持续更新)
  8. jquery动画(1)
  9. 用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍
  10. ES6扩展运算符(三点符号), 解构