[关闭]
@luckyJerry 2016-01-15T13:48:49.000000Z 字数 660 阅读 549

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

iOS


遇到了什么问题

我们做的App在6 Plus上测试时,发现了一个Bug。
如果6 Plus处于横屏状态,即整个spring board处于横屏状态的时候,启动App,那么App的画面会发生崩坏。
类似于这样
【图片】

App情况

绝大多数的ViewController只支持Portrait方向,仅有两个文件预览的Controller可以支持横屏。

原先做法

  1. 在info.plist文件中,声明支持Portrait, LandScape Left, LandScape Right 3个方向。
  2. 定义一个Protocol -- MultiOrientationSupport,这个Protocol中没有任何方法。
  3. 在想要支持多方向的ViewController上,声明实现该协议。
  4. 在RootViewController中实现shouldRotate 和 supportedOrientation 两个方法。
    判断顶部的ViewController是否实现该协议,而返回不同值。

解决办法

  1. 在info.plist文件中,仅声明支持Portrait方向。
  2. 在UIApplicationDelegate中,实现 application:supportedInterfaceOrientationsForWindow:方法,返回支持UIInterfaceOrientationMaskAllButUpsideDown。

后记

估计App还没有完全启动时,会先看info.plist文件中,是否支当前的启动方向。如果支持,则用当前方向启动App。

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