故事板标签约束

Posted

技术标签:

【中文标题】故事板标签约束【英文标题】:Storyboard labels constraints 【发布时间】:2017-06-07 09:49:05 【问题描述】:

我的故事板上有 4 个标签,它们在基线对齐并且它们之间的距离固定。 每个标签在运行时可以有不同的值,我希望这4个标签的组水平居中。

没有成功修复它! 我试图将它们放在视图中并将视图居中,但它也不起作用。 也尝试过处理优先级,但也没有成功......

是否有可能在情节提要中实现?

【问题讨论】:

您可能正在寻找的是堆栈视图。 我同意贾斯汀的观点。如果没有堆栈视图,这是相当痛苦的,而使用堆栈视图则微不足道。 如果每个标签之间的距离是固定的,则此解决方案有效,但如果它们不同,则堆栈视图不允许... 【参考方案1】:

您可以通过将 4 个标签放在另一个视图中来做到这一点。添加以下约束:

    在标签之间设置固定距离约束(3 个约束)。 设置约束以对齐标签的基线(3 个约束)。 设置从最左侧标签到包含视图的前导约束。将常量设置为0。 设置从最右边标签到包含视图的尾随约束。将常量设置为0。 设置视图高度约束。 设置从左标签顶部到其包含视图顶部的约束。 设置约束以使视图水平居中。 设置约束以垂直定位视图。

视图的宽度将由标签的固有大小加上#1 中的距离大小决定。这个宽度会随着标签内容的变化而变化,并且视图将保持组居中。


【讨论】:

@Eric,你试过这个吗?有什么东西没用吗?我假设您希望标签宽度是动态的。如果您希望它们被固定,请为每个标签添加宽度约束。 嗨 VacaWama,感谢您的回答,这正是我正在寻找的。有比堆栈视图更多的约束,但我可以根据我的需要自定义标签和基线对齐之间的距离。再次感谢:)【参考方案2】:

您可以为此使用堆栈视图:

例如,在“属性检查器”中,您可以设置每个文本字段的宽度相等,并且它们之间的间距为 5 点:

然后,您可以像往常一样使用 Stack View 水平居中。

【讨论】:

您好,感谢您的提示。试过了,但在我的例子中,标签之间没有相同的空格,并且在堆栈视图中它们必须完全相同。 你是否设置了同样的填充? 是的,据我所知,如果标签位于堆栈视图中,我无法在标签之间放置水平约束。

以上是关于故事板标签约束的主要内容,如果未能解决你的问题,请参考以下文章

故事板中自动布局标签的表格视图单元格约束[关闭]

XCode 故事板问题

故事板约束(Xcode)

iOS 故事板视图约束问题

Xcode 6.3 故事板自动布局约束

将第二个故事板控制器分配给第一个故事板标签栏项目。