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

6
我正在尝试让一个相当复杂的、已有的代码库 (基于SDK iOS 9.0; Swift 4.0; Xcode 9.1) 在iPhone X上运行全屏模式,但目前它只能运行在“兼容模式”下(即,黑色的上下边框)。
然而,满足相同要求的全新Xcode项目可以正常全屏模式下运行。
此外,在iPhone X上运行应用程序实际显示“兼容模式”和全屏模式存在一定的模糊和/或错误信息。
其中的变量可能包括:
· 基础SDK项目设置
· 是否有启动故事板
· 是否有iPhone X启动图像,以及它们的大小
· 是否启用了安全区域指南
... 可能还有更多。
除了苹果公司(和其他人)所说的之外,是否有人明确地确定了哪个参数的哪个组合“切换”,并且在iPhone X上导致应用程序在一个模式下运行而不是另一个模式?
[请注意:出于业务原因,至少目前,我们仍希望该应用程序能够在iOS 9及以上版本上运行。]
非常感谢!

3
你已经回答了自己的问题。如果你使用启动画面故事板,那么可以实现全屏幕。否则,如果你使用适当尺寸的启动图片,也可以实现全屏幕效果。 - rmaddy
1
顺便提一下 - 你需要一个基础的 iOS 11.1 SDK(或“最新版本”)。你希望部署目标是 iOS 9.0。这样才能正确地支持 iOS 9.0 及更高版本。 - rmaddy
非常感谢您,rmaddy--我很感激您的确认和信息。 - RonDiamond
1个回答

8
为了在iPhone X上打破信封盒子,您的应用需要:
  1. 针对iOS 11.0(或更新版本)SDK进行编译
  2. 具有适当的启动屏幕资产 - 要么是具有自动布局的启动故事板,要么是iPhone X启动图像在资源目录中。
利用安全区域指南并不是脱离兼容模式信封盒子的一部分,但它对于确保您的UI在iPhone X上适合是至关重要的。对于许多应用程序,只需执行上述步骤1和2就会导致UI拉伸以填满整个屏幕,将重要控件隐藏在圆角、主页指示器和传感器缺口后面(或与其过于接近)。
正如@rmaddy所指出的那样,您仍然可以使用iOS 11 SDK构建并部署到少于10%(截至本文撰写时)运行iOS 9的iOS设备,只需在Xcode项目中设置最小部署目标,并确保任何使用iOS 10和iOS 11 API都受到可用性检查的保护。

非常感谢您的信息和写得很好的回复,Rickster。非常感激。 - RonDiamond

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接