首页 > 代码库 > iOS开发 - Content hugging priority & Content compression resistance priority

iOS开发 - Content hugging priority & Content compression resistance priority

1. 什么是Content hugging priority

你可以把它想象成一根放在视图上的橡皮筋。

这根橡皮筋会组织视图超过它本身的固有大小(intrinsic content size)。

它存在一个优先级,从0到1000。

1000表示视图绝对不能超过intrinsic content size。

我们来看个例子:

技术分享

上图中有两个横向排列的标签控件(label),并且你也已经设置好了约束。

这个会工作正常,直到父视图变宽的时候。

那么,问题来了。

如果父视图变宽了,那个label应该变宽呢?

这个时候正是我们用到Content hugging priority的时候。

拥有高优先级Content hugging priority的视图控件将不会被拉伸。

你可以把这个优先级想象成橡皮筋的抗拉伸力。

这个优先级越大,视图将越希望保持自己的固有大小(intrinsic content size)。

 

2. Content compression resistance priority

和Content hugging priority相反,Content compression resistance priority是用来抵抗压缩的。

简单的来说,前者我们讨论过的,是抵抗拉伸,也就是抵抗变大,而后者是抵抗压缩,也就是抵抗变小。

还是上面的例子中,当父视图变小的时候,拥有高优先级的label将不会被压缩,因而标签上的文本也就不会被截断。

 

iOS开发 - Content hugging priority & Content compression resistance priority