使用优先级约束设置标签位置



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

  1. 对齐前导到顶视图(常量<16) 低优先级
  2. 父视图的顶部空间
  3. 父视图的尾随空格(常量 = 28) 高优先级

我希望当标签内的文本增加时,它应该改变它 position.it 应该向左移动,但同时它也应该向右移动。我的意思是应该在两个方向上增加它的宽度。截至目前,它只向左移动并保持右侧的固定位置。

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

我认为

如果您为label alignment设置center alignment,您应该得到您想要的答案。也给leadingtrailing同样的priority

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

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

乘数适用于定位一定百分比的超级视图,无论其大小如何。 例如:如果超级视图是根视图,则乘数值 0.5 将标签放置在视图的四分之一处,1.0 表示中心 x 精确对齐,1.5 表示其与左侧相对 3/4。

最新更新