自动布局约束优先级

11
我有两个UILabel,labelA和labelB,宽度为320像素。我创建了约束条件:
H:|-[labelA]- (>=4)-[labelB]-|
不幸的是,labelA和labelB有时会很大,无法完全显示。我想要确保无论如何,labelB都不被截断。(labelB的宽度不会超过160像素)。然而,我想要尽可能利用可用的空间来显示labelA,因此把labelB固定在一半宽度是浪费空间。
问题:如何设置优先级,使得labelB始终保持其本来的大小?而labelA可以被截断。
1个回答

17

您在标签B上将内容压缩阻力设置为高:

[labelB setContentCompressionResistancePriority: UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
这意味着B将尽力避免被压缩至文本所给出的固有大小。为了使其尽可能小,您还可以设置contentHuggingPriority -这将使其尝试匹配文本的大小。

非常棒的答案,运行得很好!ContentHugging 在垂直方向上可能是最好的选择,因为标签在水平方向上紧贴文本非常好。这不是一个真正的问题,但是感谢你指出来! - Byte
1
拥抱(Hugging)可以很好地处理多标签并排的情况,我认为。 - jrturton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接