我应该如何构建由iPhone设备改变的自动布局约束

时间:2017-05-10 16:25:02

标签: ios autolayout interface-builder

我试图通过iPhone版本改变我的自动布局约束。特征的变化允许您根据大小类别而有所不同。然而,所有纵向的iPhone都是紧凑的宽度和规则的高度。

假设我有一个水平居中的元素,但我希望我的主视图顶部的距离因设备大小而异,我该如何实现?

2 个答案:

答案 0 :(得分:2)

您无法在自动布局中指定屏幕尺寸或设备版本 - 仅限尺寸类。

如果相对定位/尺寸调整对您不起作用,并且您希望在iPhone SE上进行5点等定位,在iPhone 6上进行15点定位,则必须通过代码进行定位。您的选择是:

  1. 不要使用自动布局......
  2. 更改约束值(常量,乘数,优先级等)
  3. 如果您阅读Apple关于自动布局的文档,您可以看到它是针对自适应界面设计,而不是备用界面设计。

答案 1 :(得分:1)

方法1:以编程方式更改约束值

如果要为iPhone变体设置不同的常量顶部值,请创建顶部约束的出口并更改其常量值。

_topConstraint.constant = Conditional code for each device.

方法2:设置自适应约束

例如:我拍摄了一个固定高度= 100,宽度= 200且水平居中的视图。

enter image description here

现在根据设备尺寸给出一个相应的顶部空间,请准备一些数学。

假设,iPhone5屏幕的顶部空间= 36磅。

总视图高度=视图顶部+视图高度= 36 + 100 = 136

总屏幕高度= 568底部比率= 568/136 = 4.17

因此,设置底部布局约束并将乘数添加为4.17。 enter image description here enter image description here enter image description here enter image description here enter image description here

在iPhone 7 plus和其他设备上,它会自动更改顶部。