Autolayout约束优先权

Byt*_*yte 11 ios autolayout nslayoutconstraint

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

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

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

问题:如何确定labelB始终保持其内在规模的优先级?哪里labelA可以被截断.

jrt*_*ton 17

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

[labelB setContentCompressionResistancePriority: UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
Run Code Online (Sandbox Code Playgroud)

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