两个约束如何协同工作以定义轴上的位置

时间:2017-06-30 06:37:02

标签: ios autolayout

我遇到了使用两个约束的方法,这两个约束协同工作以定义视图沿轴的位置。例如,我有一个Y轴约束是

的视图
View.centerY = 0.3 x centerY

即。相对于centerY。现在,如果我添加另一个约束:

View.top ≥ top + 10

现在,如果顶部空间恰好是≥ top + 10,它将会起作用,并且在相对较大的屏幕设备上不会产生影响。但是,这是我的问题,为什么它会影响较小的屏幕设备?当top + 10试图向下推动视图时,两个约束是否会发生冲突?以下屏幕截图显示了iPhone 4s的区别:

没有≥top+ 10

enter image description here

≥上限+10

enter image description here

1 个答案:

答案 0 :(得分:0)

iphone 4s设备尺寸为320x480

由于这个原因,这种情况正在发生

  1. 第一个约束0.3 x centerY
  2. centerY = 480/2 = 240

    解决这个0.3 * 240 = 72

    所以查看centerY = 72

    1. view.top> = superview.top + 10 Iphone 7 view[![][1]] 2 解决这个问题 superview.top = 0
    2. 所以查看y = 0 + 10 = 10(y将始终大于或等于10)

      您可以检查我已设置相同约束的附加图像,并查看位置更改时间,但是我的乘数为0.5,因为在乘数0.3中,两个约束都会相互冲突。