在Masonary中也可以设置约束的优先级,如make.left.equalTo(weakSelf.view.mas_left).offset(20).priority(250)
中的priority
。
在Storyboard中也可以,举个🌰:父视图上有imgView和两个label,现要求两个label的宽度随内容且不超出,另必须保证红色label中的内容显示完整。
storyboard拖控件就不说了,直接从约束开始。
imgView: left、right、top、height、width
绿色label:left、center-Y、right、height
红色label:left、center-y、right、height
这个时候storyboard会报错,因为两个label的宽度无法定位。如下图。
提示说,降低红色label的水平方向压缩阻力(即容易被压缩)以确保在其他视图之前可以被裁剪。
点击 Change Priority,改变约束优先级。
这时我们可以看Size Inspector中,红色label水平方向压缩阻力由750降为了749,说明在水平方向上,绿色label展示的优先级要高于红色label。当然这和我们一开始的需求反了,待会儿再改。我们先看看Size Inspector中优先级的说明。
-
Content Hugging Priority:拉伸阻力,即抗拉伸。值越大,越不容易被拉伸。
-
Content Compression Resistance Priority:压缩阻力,即抗压缩。值越大,越不容易被压缩。
-
Intrinsic Size:控件未设置宽高约束时用的。
-
Ambiguity:解决冲突时是否需要验证。
网友评论