设置具有优先级约束的标签位置?

Posted

技术标签:

【中文标题】设置具有优先级约束的标签位置?【英文标题】:set label position with priority constraint? 【发布时间】:2016-03-19 05:11:02 【问题描述】:

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

    对齐顶部视图(常量 父视图的顶部空间 父视图的尾随空格(常量=28)高优先级

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

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

【问题讨论】:

【参考方案1】:

我认为如果您将center alignment 设置为label alignment,您应该会得到您想要的答案。同时将priority 设置为leadingtrailing

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于设置具有优先级约束的标签位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何以视觉语言格式编写具有内在大小优先级的内容?

如何使用自动布局移动标签并为更改设置动画?

图像约束优先于标签

iOS 约束:如何给 UILabel 高度约束优先级

动画 UIView 框架不尊重约束?

哪个布局约束具有同等优先级?