Content Hugging Priority and Content Compression resistance Priority

概念

Conent Hugging *
<pre>内容抱紧:在此基础上不再
变大</pre>
Content Compression
<pre>内容压缩:在此基础上不再
变小*</pre>

举个栗子

view上面放两个UILabel,两个Label水平,且上下左右都有约束。

  • First step 对这两个约束不做任何改动,如下设置
    <pre>self.leftLabel.text = @"aaaaaaaaaaaa";</br>self.leftLabel.textColor = [UIColor redColor];</br>self.rightLabel.text = @"bbbbb";</br>self.rightLabel.textColor = [UIColor greenColor];</pre>
左边是leftLabel、右边是rightLabel.png

可见:默认情况下,右边的都展示出来了,而左边的没有都展示出来。因为苹果为了保证约束,牺牲了Label内容的大小,用...来表示了

  • Second step 修改两个Label水平方向上的Content Compression的优先级,让leftLabel小于rightLabel,让rightLabel不被压缩
leftLabel content compression 约束的优先级小于 rightLabel.png

可见:rightLabel都展示出来了,而leftLabel的内容被牺牲了,满足了约束的需求。

Tip:其实还有种方法能满足上面的需求

rightLabel的右侧约束的优先级改成比content compression还低,苹果会牺牲该约束的长度,来满足需求。效果和上图一样。
size :{ 100, 30 }
horizontal/vertical compression resistance priority of 750
and horizontal/vertical content hugging priority of 250
four constraints will be generated:

H:[label(<=100@250)]
H:[label(>=100@750)]
V:[label(<=30@250)]
V:[label(>=30@750)]

也就是说compression最小不能小于某个值,hugging的最大不能大于某个值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容