X因素:支持iPhoneX

为什么? 什么时候? 怎么样?

苹果于2017年11月3日推出了新的移动设备:iPhoneX。 它不同于以前的所有iPhone设备。 这意味着大多数App Store的应用程序在iPhoneX上看起来都很糟糕:部分视觉元素重叠,有些可能会变形。 这很杂乱,完全不是苹果的细致外观。

作为应用程序所有者,我可以决定我将忽略iPhoneX用户吗? 不在苹果王国。 从2018年4月开始,App Store仅接受支持iPhoneX的应用程序。 从2018年7月开始,只有支持iPhoneX的应用程序才能升级其现有应用程序。 这意味着,如果一个屏幕的缺口重叠,请扭曲…该应用程序将无法通过Apple的审查,因此无法进入App Store。
他们能做到吗? 当然是苹果! 他们将一如既往地为用户提供最佳体验。 开发人员应全力以赴,以使魔术得以实现。

本文专为希望了解这些操作的应用程序所有者以及将实际从事这项工作并需要了解如何解决这一问题的iOS开发人员而设计。

我仅指的是UI更改。 iPhoneX具有不同的硬件,这些硬件也可能影响应用程序的行为。

所有屏幕图像均来自我调整为iPhoneX的应用程序。 我要感谢“ CoffeeMe Ltd”和“ Lifebuoy Ltd”让我使用它们漂亮的屏幕作为本文。

在UI方面,主要区别在于屏幕形状。
所有其他Apple设备均为矩形。 iPhoneX的上部条纹在其顶部有一个槽口,左侧显示时间,右侧显示电池状态和Wifi。
在屏幕视图的底部,有一个虚拟主页按钮。

其他区别:iPhoneX的长宽比(高/宽)更高。

实际的:

让我们弄脏双手:

在Xcode上打开您的项目。 打开Main.storyboard。 在Interface Builder文档下,选择“使用安全区域布局指南”。 对LaunchScreen.Storyboard执行相同的操作(在新项目中,这已经是默认设置)。
(这可以一次对所有ViewController进行,也可以一次完成。)

如果您在屏幕的顶部或底部有自己开发的UI元素,请修复它们。
对于每个屏幕:
修复约束。 检查背景是否一直伸展(与superView对齐)并且内容安全地位于SafeArea(与SafeArea对齐)内。

还有什么?

如前所述,屏幕尺寸是不同的。 这意味着依赖于屏幕宽度/高度的UI对象可能需要进行调整。 您可以使用我的“有用的东西”来区分这些选项。

有用的东西

如何检测它是否是iPhoneX?
有几种方法。 这是一个(适用于iPhoneX,iPhone XR,iPhone XS,iPhone XSMax):

如果用户一段时间未触摸屏幕,则可以修改自动指示器的行为以使其自动隐藏。 您仅应在特定情况下执行此操作,例如以全屏模式查看照片或视频。 当用户再次点击屏幕时,虚拟家庭指示器将重新出现。

在9.0以下支持iPhoneX和iOS令人头疼。 这里没有捷径。 使用ifs,可编程约束并等待iOS 8.0和平死掉,并让您摆脱同时维护iOS 9.0以上版本的双重负担。

这取决于。
作为一名移动开发人员自由职业者,我有时需要提前估算将应用程序调整为iPhoneX所需的时间/精力。 这不是一件容易的事,因为它取决于以下内容:
–屏幕数
–覆盖安全区域的UI元素的数量
–可能违反SafeArea范围的自行开发的UI元素的数量

一个由10个屏幕组成的小应用程序通常需要2到10天的时间(这是一个很大的范围,但是,嘿!我说这取决于情况)。

无论我们是否喜欢,iPhoneX都将保留下来。 每个应用都必须适应它。 虽然新应用程序比较容易,但很难将现有应用程序调整为适用于iPhoneX。 主要工作是检查每个屏幕是否有iPhoneX偏差,并相应地更改约束。 背景通常会在整个屏幕上延伸,并且内容仅限于安全区域。 不要忘记检查并修复由于宽高比不同而在iPhoneX中变形的UI元素。