[关闭]
@luckyJerry 2016-01-15T14:27:06.000000Z 字数 616 阅读 441

iOS关于屏幕旋转的处理方法

iOS


屏幕旋转的常用函数

UIApplicationDelegate
A. - (NSUInteger)application:(UIApplication *)application
supportedInterfaceOrientationsForWindow:(UIWindow *)window

UIViewController
B. - (BOOL)shouldAutorotate
C. - (NSUInteger)supportedInterfaceOrientations

这些函数是怎么调用的

  1. 当设备旋转时,得到目标方向O(Orientation), 系统会调用A方法,查看应用到底支持哪些方向,是否支持O方向。
  2. 如果没有实现A方法,那么系统会查看在userInfo.plist里设定 Supported interface orientations里的值,看看应用是否支持O方向。
  3. 如果系统能够支持O方向,会调用window的rootViewController或者最顶上一层的controller的B方法,如果返回YES,则会调用C方法,查看这个controller是否支持O方向。如果支持这个方向,则这个Controller旋转至O方向。

总结

    简单地说,就是当设备方向改变后,先判断应用是否支持该方向。如果支持,再判断当前的Controller是否支持该方向。如果支持,则旋转屏幕。

补充

关于iPhone 6 Plus启动横屏的问题

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注