当前位置: 首页 > news >正文

view controller 屏幕旋转的总结

影响当前VC方向的因素有以下几个:

1、设备的当前方向。

2、Application支持的方向。
   可以在info.plist中设置,
   在应用启动后,AppDelegate的supportedInterfaceOrientations方法
   可以覆盖info.plist中的设置。

3、root vc的
shouldAutorotate:
此方向的含义是指出在设备旋转时,vc是否也跟着旋转。
默认是YES

4、root vc的
supportedInterfaceOrientations
指定了vc支持的方向。
默认是UIInterfaceOrientationMaskAllButUpsideDown

其返回值必须是Application的supportedInterfaceOrientations 范围之内。


5、root vc的preferredInterfaceOrientationForPresentation 

默认值是设备当前的方向。

用于指定vc在显示时的初始方向。

其返回值必须在roo vc的supportedInterfaceOrientations的范围之内。



在决定当前vc的方向时,分两种情况:

第一种情况:vc在显示时的初始方向。
第一种情况:设备在旋转时vc的方向。



第一种情况:vc在显示时的初始方向:
此种情况,如果root vc设置了preferredInterfaceOrientationForPresentation 
,则按其设定的方向显示。


root vc没有设定preferredInterfaceOrientationForPresentation ,
如果设备当前的方向是root vc支持的方向,则按设备的方向显示;
如果设备当前的方向root vc不支持,则系统从vc支持的方向中,按
系统默认的优先级取值。


第二种情况:vc在设备旋转时的方向:
在设备旋转时,如果root vc的shouldAutorotate是NO,则vc不动。
否则,
如果设备的方向是root vc支持的,则vc旋转至设备的当前方向,
设备的方向root vc不支持,vc不动。




UIInterfaceOrientationMask和UIInterfaceOrientation的关系:
UIInterfaceOrientationMask指定了常用的几种应用支持的
方向的集合。

相关文章:

  • 强制旋转UIAlertView
  • 我被中国计算机教育的现实打败了
  • Unable to simultaneously satisfy constraints
  • 将Java包程序转换为Exe可执行文件
  • UIApplication openURL tel 在不同iOS版本上的表现实测
  • 《Selling - Building Partnerships》- 用交流性原则来建立关系
  • 为什么NSArray和NSDictionary中不能存放int、float、bool等基本类型
  • 《Selling - Building Partnerships》- 寻找客户
  • NSDateComponentsFormatter stringFromTimeInterval iOS9和iOS9之后处理负数的不同
  • 10月17日Servlet培训日记
  • realm数据库密码保存到keychain中产生的问题
  • 10月19日培训日记
  • 给应用全局加水印
  • 不信东风唤不回——南宋诗人谢枋得之死
  • 使UIView拥有viewDidAppear事件
  • [数据结构]链表的实现在PHP中
  • css选择器
  • gulp 教程
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript新鲜事·第5期
  • Spark学习笔记之相关记录
  • SQLServer插入数据
  • Sublime text 3 3103 注册码
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 创建一种深思熟虑的文化
  • 大主子表关联的性能优化方法
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 消息队列系列二(IOT中消息队列的应用)
  • 一道闭包题引发的思考
  • #100天计划# 2013年9月29日
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $refs 、$nextTic、动态组件、name的使用
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (差分)胡桃爱原石
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (转)EOS中账户、钱包和密钥的关系
  • (转)大型网站架构演变和知识体系
  • (转)甲方乙方——赵民谈找工作
  • .chm格式文件如何阅读
  • .equals()到底是什么意思?
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .mysql secret在哪_MySQL如何使用索引
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .Net Remoting常用部署结构
  • .net 发送邮件
  • .net 验证控件和javaScript的冲突问题
  • .net6使用Sejil可视化日志
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • @Autowired和@Resource的区别
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [Angular 基础] - 指令(directives)