UI 个元素 iPhone 6 Plus 不会水平填满整个屏幕

UI elements on iPhone 6 Plus don't fill the whole screen horizontally

为 iPhone 6 Plus 开发时(所有其他设备不受影响)。如果您有一个 UI 元素,假设它从一端到另一端水平填充屏幕,则前导和尾随约束通常为 -16,因为 0 被假定为距离边距 16 点。

这在故事板和除 iPhone 6 Plus(物理设备和模拟器)以外的所有设备上看起来都不错。

正如你在这里看到的,我在故事板上对这个测试视图的定义:

在 iPhone 6 加上这是我得到的:

那个黑色视图的左右两侧显然有一些未填充的边框。 我做了一些测试,将约束设置为 -19 和 -20 以查看 space 是否会被填充:

这是它的样子:

左边约束为-20 的地方没有边框,右边约束为-19 的地方有1 像素的边框。

我的结论是,iPhone 6 Plus 上的 0 点距边距 20 点,而不是所有其他设备中的 16 点。这不是故意的,这显然是一个 iOS 错误。

有人遇到过这个问题吗?有没有一种解决方法可以使它保持一致,这样我就不必为 iPhone 6 Plus 添加硬编码异常?

不要使用保证金。您可以选择关闭约束的边距。

边距的要点是它是由系统控制的,而不是你,所以它可以为每个设备设置一个合适的大小。大设备的边距比小设备大一点是有道理的。