我有许多运行良好的应用程序,并且在每个设备上的布局都很好,除了iPhone X以外。在iPhone X上运行这些应用程序时,它“拉伸”了视图,看起来很奇怪。它还涵盖了安全区域。如何将其设置为仅位于安全区域内,并使用应用程序的常规背景色绘制背景(不属于安全区域的部分)?
最佳答案
看起来您的布局在很大程度上取决于设备的宽高比,尤其是其屏幕宽度。如果要冒昧地猜测一下,我会说您可能正在根据子视图的宽度来计算子视图的大小和临时填充,最重要的是,在此处硬编码或错误计算子视图的拐角半径'图层。
通常,我认为这是一个设计问题,建议您找到一种调整这些视图大小的方法,以便无论设备的宽高比如何,它们都不会变形,因为绝对不能保证我们可能需要支持哪些显示尺寸和特性。 X的缺口证明了未来。
如果您想快速而轻松地完成某件事,并且希望尽可能少地更改现有代码,那么我可能会考虑将视图添加到接口构建器或代码中的容器视图中,然后将该容器的宽高比限制为您选择支持的那个。然后,您可以使容器的超级视图具有与容器相同的背景色,并使容器在其超级视图中居中。这实际上等效于在容器的上方和下方添加条以保留原始外观。老实说,我认为这是一个创可贴。在理想情况下,无论设备的宽高比如何,您都应该能够适应它的宽度。