AutoLayout自动约束中的两个重要属性

2017-03-24  本文已影响0人  jackguo

1.Content Hugging priority  

直译过来就是  内容 紧靠 优先级     抗拉伸优先级 (小名:别扯我),该优先级越高,越晚轮到被拉伸。

content Hugging默认优先级250.

案例分析

假设设置一个按钮与父控件的右边约束为-10,并设置此条的优先级为251,大于别的约束,那么系统就会保证这-10的间距,而自动的拉长按钮的宽度,如图:

如果把右边的约束的优先级设置为249 ,那么系统就保证按钮的正常宽度,不被拉伸,所以就如下

2.Content Compression Resistance priority

直译过来就是  内容 压缩 阻止 优先级      抗压缩优先级  (小名:别挤我),该优先级越高,则越晚轮到被压缩。

Content Compression Resistance默认就是750

案例说明:

当拖拽一个button的到view中,系统会根据字体和图片自动计算button本身的尺寸, 

假设设置按钮左边与右边的束与父控件都为100, 默认的Content Compression 的优先级是 750,如果内容超出,设置右边的约束优先级为751,这种情况下按钮显示的状态系统就会为了保证右边的高优先级的约束,压缩按钮内容

此时autolayout系统会去首先满足此constraint,

如果把右边约束的优先级更改为749 Horizontal也就是右边的约束的优先级小于button自身计算的尺寸的优先级,所以会显示成以下的情况.

这时就是先满足了Content Compression Resistance的constraint,因为其优先级高。
上一篇下一篇

猜你喜欢

热点阅读