美文网首页
storyboard中的约束优先级

storyboard中的约束优先级

作者: 这个汤圆没有馅 | 来源:发表于2018-11-01 16:18 被阅读0次
在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:解决冲突时是否需要验证。
Priority的值默认分为三个等级 Required(1000)、High(750)、Low(250),其实可以输入任意其他数字。
好,回到需求,只要把红色label的水平方向压缩阻力优先级的值改成任意大于绿色label压缩阻力的值即可。如果红色label的内容太多,那就会把绿色label给挤没掉。

相关文章

网友评论

      本文标题:storyboard中的约束优先级

      本文链接:https://www.haomeiwen.com/subject/jeaotqtx.html