设置具有优先级约束的标签位置?
Posted
技术标签:
【中文标题】设置具有优先级约束的标签位置?【英文标题】:set label position with priority constraint? 【发布时间】:2016-03-19 05:11:02 【问题描述】:我在父视图的右侧有一个标签。在标签顶部有一个视图。我给标签提供了以下约束。
-
对齐顶部视图(常量
父视图的顶部空间
父视图的尾随空格(常量=28)高优先级
我希望当标签内的文本增加时它应该改变它的位置。它应该向左移动,但同时它也应该向右移动。我的意思是应该在两个方向上增加它的宽度。截至目前它只是在移动向左并从右侧保持固定位置。
请告诉我如何才能完成这项任务?
【问题讨论】:
【参考方案1】:我认为如果您将center alignment
设置为label alignment
,您应该会得到您想要的答案。同时将priority
设置为leading
和trailing
。
【讨论】:
【参考方案2】:正如您所观察到的,这将不起作用,因为超级视图约束的尾随空间很可能总是获胜。
标签的宽度和高度由其内在内容大小处理,因此不需要任何限制。就位置而言, y 由顶部空间约束处理。最后,x 将需要一个约束,使其能够如上所述在两个方向上增长。要启用此行为,请删除前导和尾随约束并添加水平居中约束。这将使标签以它的超级视图中心为中心。要向左或向右偏移位置,您可以选择一个常数值或使用 multiplier 属性。
乘数适用于定位一定百分比的超级视图,无论其大小如何。例如:如果父视图是根视图,则乘数值 0.5 将标签放置在视图的四分之一处,1.0 使中心 x 完全对齐,1.5 使其与左侧相距 3/4。
【讨论】:
以上是关于设置具有优先级约束的标签位置?的主要内容,如果未能解决你的问题,请参考以下文章