以编程方式添加负面约束

时间:2018-09-07 17:37:23

标签: swift xcode constraints anchor programmatically

为什么我必须给rigthAnchor的{​​{1}}约束赋予负值,以使视图的右边距为28。如果我给它一个正值,它将超出视图28个像素。

titleLabel

2 个答案:

答案 0 :(得分:3)

因为按照此

titlelbl.right = view.right - 28

和说

view.right = titlelbl.right + 28
  

firstItem.anchor = seconfItem.anchor *乘数+/-常数

转换为

titleLabel.rightAnchor.constraint(equalTo: view.rightAnchor, constant: -28).isActive = true

OR

view.rightAnchor.constraint(equalTo: titleLabel.rightAnchor, constant: 28).isActive = true

如果您不喜欢负值

编辑:

-28时约束的含义

您要告诉自动布局将titlelbl的最大值x值设置为等于视图的最大值x负28

  

| -lbl + 28-|

但+28

  

| -lbl-| + 28 <<<视线外最大x

答案 1 :(得分:2)

我相信这与窗口的(X,Y)网格有关。

您正在将titleLabel的rightAnchor锚定到视图的rightAnchor。但是,如果“您的常数为28”,则约束该锚点28沿x轴指向,从而将标签移出视图的框架。

如果要通过编程方式添加这些约束,则要将常量沿x轴向左移动,必须将其指定为负值。