Autolayout约束优先权

时间:2013-08-30 15:33:35

标签: ios autolayout nslayoutconstraint

我有2 UILabel labelAlabelB,宽度为320像素。我创建了约束

H:|-[labelA]-(>=4)-[labelB]-|

不幸的是,labelAlabelB有时会很大,如果没有截断就不适合。我想确保无论如何,labelB都不会被截断。 (labelB不会超过160 px)。但是,我想尽可能多地使用labelA的可用空间,因此将labelB固定到一半只是浪费空间。

问题:如何设置labelB始终保持其内在大小的优先级? labelA可以截断的位置。

1 个答案:

答案 0 :(得分:17)

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

[labelB setContentCompressionResistancePriority: UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];

这意味着B将尽量不压缩到低于文本给出的内在大小。为了使它也尽可能小,您可能还想设置contentHuggingPriority - 这将使其尝试匹配文本的大小。