设置标签位置优先约束?

时间:2016-03-19 05:11:02

标签: ios objective-c autolayout nslayoutconstraint

我在父视图的右侧有一个标签。在标签的顶部有一个视图。我给出了以下约束标签。

  1. 对齐导致俯视图(常数<16)低优先级
  2. 父视图中的顶部空间
  3. 尾随空间到父视图(常量= 28)高优先级
  4. 我希望当标签内的文字增加时,它应该改变它的位置。它应该向左移动但同时它也应该向右移动。我的意思是应该增加它的宽度。方向。截至目前,它只向左和向左移动。从右边保持固定位置。

    请告诉我该如何完成这项任务?

2 个答案:

答案 0 :(得分:0)

我认为如果你为center alignment设置label alignment,你应该得到你想要的答案。同样priorityleadingtrailing

答案 1 :(得分:0)

这不会起作用,因为超级视图约束的尾随空间很可能总是会赢,正如您所观察到的那样。

标签的宽度高度内在内容大小处理,因此不需要任何约束。就位置而言, y 由顶部空间约束处理。最后, x 将需要一个约束,允许它在所提到的两个方向上增长。要启用此行为,请删除前导和尾随约束,并添加水平居中约束。这将标签置于其超级视图中心。要向左或向右偏移位置,您可以选择常量值或使用乘数属性。

乘数适用于定位超视图的特定百分比,无论其大小如何。例如:如果superview是根视图,则乘数值为0.5,将标签的四分之一放置在视图中,1.0使中心x精确对齐,1.5使其从左边开始3/4。