如何在界面生成器中对视图施加约束以满足 Xcode 中的所有 iphone 屏幕 8

how to put constraints on views in interface builder to satisfy all iphone Screen in Xcode 8

我一直在尝试以下方法,例如固定、纵横比、垂直间距、horizontal/vertical 间距、leading/trailing space;但对于 iPhone se 及更高版本的所有 iPhone 屏幕,它并不是统一工作的。

您不再为每个设备应用约束。您根据尺寸 class 应用自动布局约束。

如果您知道每个 iOS 设备在每个方向上都属于尺寸 class 之一。如果您不知道尺寸 class 请阅读它。

关于回答你的问题, 1. 您将向任意 x 任意添加在所有大小 classes 中通用的约束。

2.you 总是可以添加特定于尺寸 class 的约束(我的意思是您可以添加一个尺寸 class 的约束,同时卸载其他尺寸 class 如果你不想要它)

3.you 可以 select 任何约束并为其提供常量值,特定于尺寸 class 的乘数(例如:您可以在 CxC 中将高度约束常量设置为 50,而您可以在 (R x R) 中将其设置为 150 而无需添加新约束。

通过将乘数设置为正确的值,您可以实现这一点。 我以非编程方式尝试过,并且仅在 Xcode 8 :

  • select 新视图之一并按住 ctrl 并拖动到最顶层的外部视图(或父视图),因为它会根据不同的屏幕尺寸发生变化.
  • 然后 按住 shift 和 select 多个选项:1) 等宽和等高,2) 在容器中水平居中,3) 在容器中垂直居中。完成此操作后,您将看到黄线(围绕您的新视图),表示未满足的约束条件。
  • 然后 select 每个约束线(黄色)或者 select 在视图控制器场景列中显示不同的约束并修改乘数直到黄色彩色线变为蓝色,即直到它满足需要新视图位于最顶层视图或父视图中的位置。

screenshot showing multiplier for setting in Interface builder