iOS8之后苹果屏幕旋转的一些问题总结
工作中遇到这样一个需求,在当手机投影到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之后苹果屏幕旋转的一些问题总结相关推荐
- 怎么设置苹果手机的小圆点_苹果屏幕旋转怎么设置?关于苹果手机设置的一些小技巧...
苹果屏幕旋转怎么设置?在平常使用手机观看视频的时候,很多人希望手机屏幕可以自己旋转为横屏状态,在使用微信聊天的时候再自动转为竖屏,这种切换可以直接利用控制中心的一个功能来实现. 如何开启苹果手机的屏幕 ...
- 苹果屏幕旋转怎么设置?关于苹果手机设置的一些小技巧
苹果屏幕旋转怎么设置?在平常使用手机观看视频的时候,很多人希望手机屏幕可以自己旋转为横屏状态,在使用微信聊天的时候再自动转为竖屏,这种切换可以直接利用控制中心的一个功能来实现. 如何开启苹果手机的屏幕 ...
- 苹果屏幕旋转怎么设置_笔记本电脑维修|笔记本电脑屏幕旋转90度怎么复原
大家在使用笔记本电脑的时候,有没有遇到过这样一个问题.在某一次打开电脑的时候,突然就发现笔记本电脑的屏幕旋转了90度,而且不管打开哪个界面,都是旋转了90度的.遇到这个问题的时候,有小伙伴不知道怎么解 ...
- iOS屏幕旋转 浅析
一.两种orientation 了解屏幕旋转首先需要区分两种orientation 1.device orientation 设备的物理方向,由类型UIDeviceOrientation表示,当前设备 ...
- 怎么设置苹果手机的小圆点_iPhone屏幕旋转怎么设置?关于苹果手机设置的一些小技巧...
阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都会有分享,都是免费订阅,请您放心关注. 注:本文转载自网络,不代 ...
- 苹果6怎样打开html,苹果6屏幕旋转怎么设置 怎么开启和关闭【图文】
手机在使用的过程中,通常都会有两种状态,横屏与竖屏,大家的使用习惯不一样,所喜欢的状态也不一样,而且手机都会有屏幕自动旋转的情况,它会根据手机的摆放状态自己切换,比较方便大家使用,当然这个功能也可以关 ...
- 苹果主屏幕按钮怎么设置_Mac小技巧 Mac屏幕旋转怎么设置
相信不少的Mac用户在躺下看电子书或者电影的时候,都希望可以将Mac的电脑屏幕进行旋转!其实,这个操作是可以实现的呢!那么,你知道Mac屏幕旋转怎么设置吗?想要知道答案的话就快来阅读下面的文章吧!今天 ...
- iOS传感器:实现一个随屏幕旋转的图片
作者 非典型技术宅 关注 2017.05.24 17:22* 字数 1568 阅读 351评论 7喜欢 14 在写上一个动画系列的时候学到了非常多的知识,也认识了很多人.例如受邀进入了某个神秘的动效组 ...
- 视图控制器及屏幕旋转
自定义View中 @implementation Rootview - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:fr ...
最新文章
- ElasticSearch5.x实践_day05_03_Mapping_Meta-Fields
- 在Android Studio中打开DDMS
- linux文件查找工具,分享|Linux 中一种友好的 find 替代工具
- 计算机网络基础概念知识笔记
- Fedora 17删除旧内核的操作
- 业务逻辑数据层SqlDataSourcesql的输入参数
- 蓝桥杯:试题 历届真题 修改数组【第十届】【省赛】【研究生组】Java实现
- css固定定位与绝对定位的区别
- python 下采样和上采样
- 《计算机网络基础》考试大纲
- 直播无线领夹式麦克风
- AUTOSAR 基础软件的内在安全
- 计算机基础知识——二进制
- [剑指Offer]-把数字翻译成字符串
- 【事件图谱】事件抽取与事件关系抽取
- Linux运维笔记-日常操作命令总结(1)
- 微信小程序云开发———CMS
- Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
- AI实战营第二期——课程目录
- 企业宣传画册印刷产品的作用和功能
热门文章
- 三年级上册计算机计划书,三年级上册期末复习计划书
- AB测试平台的那些事
- 差异化服务(Differentiated Services)
- QQ的改版和Skype的固执,取消离线与坚守离线,相反的做法与相反的结果,虽然是产品上的纠结,却让我看到了未来的影子。...
- 计算机二级考试中所有判断题(含答案)
- history.pushState() 给网站添加和修改浏览历史记录
- Linux终端命令(持续更新)
- jquery动画(1)
- 用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍
- ES6扩展运算符(三点符号), 解构