iPhone X:什么触发兼容模式与全屏模式?

时间:2017-11-09 11:54:49

标签: ios iphone-x

我正试图让一个相当复杂的现有代码库(基本SDK iOS 9.0; Swift 4.0; Xcode 9.1)在iPhone X上以全屏模式运行,到目前为止,它只能在“兼容模式”中运行(即带有黑色顶部和底部边框的信箱)。

然而,满足相同要求的全新Xcode项目在全屏模式下运行良好。

在iPhone X上运行的应用实际上以“兼容模式”与全屏模式显示时,似乎存在相当多的含糊不清和/或错误信息。

一些变量可能包括:

  • Base SDK项目设置
  • 是否有发布故事板
  • 是否有iPhone X发布图像及其尺寸
  • 是否启用了安全区指南

......可能还有更多。

除了Apple(及其他人)所说的,有任何人明确地确切地隔离了参数的哪些排列'翻转开关',并导致应用程序在一个与另一个之间运行什么时候在iPhone X上?

[请注意:出于商业原因,至少目前,我们仍然希望该应用能够在iOS 9及更高版本上运行。]

非常感谢提前!

1 个答案:

答案 0 :(得分:7)

要突破iPhone X上的信箱,您的应用需要:

  1. 针对iOS 11.0(或更新版本)SDK进行编译
  2. 拥有适当的启动屏幕资源 - 具有自动布局的启动故事板或iPhone X在资产目录中启动图像。
  3. 使用安全区域指南不是退出兼容模式信箱的一部分,但在之后确保您的用户界面正确适合iPhone X ,这是至关重要的。对于许多应用程序,只需执行上面的步骤1和步骤2将导致UI延伸以填满整个屏幕,隐藏重要控件(或令人不舒服地靠近)圆角,原点指示器和传感器凹口。

    正如@rmaddy指出的那样,您仍然可以使用iOS 11 SDK构建并在iOS 9上部署回iOS设备的不到10%(并且在撰写本文时迅速下降),只需设置最低部署目标在您的Xcode项目中,确保iOS 10和iOS 11 API的任何使用都受到可用性检查的保护。