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

Posted

技术标签:

【中文标题】iOS 约束:如何给 UILabel 高度约束优先级【英文标题】:iOS Constraints: how to give UILabel height constraint priorities 【发布时间】:2016-07-21 11:11:33 【问题描述】:

我有以下问题: 我有一个固定高度的视图。在这个视图中,有两个单行 UILable。视图比两个标签都大,所以我希望它们像这样显示:

我添加了三个约束来实现这一点:

查看顶部的第一个标签顶部 第二个标签顶部到第一个标签底部 第二个标签底部查看底部

(如果你愿意,我可以为此添加代码,但我认为它很明显)

所以现在问题来了。有时视图按预期呈现,但有时呈现不同:

这种行为是相当随机的。 我认为这是因为,两个 UILabel 都有一个(自动生成的)具有相同优先级的高度约束。有时,第一个标签的尺寸正确,有时第二个标签的尺寸正确。 那么有没有办法改变那些自动生成的高度约束的优先级或其他方式来实现这种布局? (我不想为第二个 UILabel 使用容器视图)

最好的问候

【问题讨论】:

【参考方案1】:

您的约束不明确,因此是随机结果。您还没有指定应该如何使用高度。

您应该通过将顶部标签的垂直拥抱优先级设置为高于底部标签的垂直拥抱的值来指定。

【讨论】:

感谢您的提示!我不知道内容拥抱,因为这是我第一次使用约束。这对我帮助很大!

以上是关于iOS 约束:如何给 UILabel 高度约束优先级的主要内容,如果未能解决你的问题,请参考以下文章

自动布局约束优先级未解决

动态增加 UILabel & TableView Cell 的高度?

在 UIImageView 上设置顶部约束会导致 UILabel 固定高度

约束 UIImageView 高度以尊重 UITableViewCell 中的动态 UILabel 高度

iOS 通过设定约束优先级来改变 Layout 时的动画.

numberOfLines=2 的 UILabel 使用啥约束高度? (使用 [NSString sizeWithFont...])