AutoLayout里的Hugging、Compression优先级

在AutoLayout的界面拖线布局里,经常遇到一个Cell里面并排放着两个Label,如下图所示:

效果

由于Label的宽高不需要我们手动指定(自动计算),所以只需要简单设置Label的X、Y、以及两个Label的间距即可。

但是,这里有一个问题,两个Label的宽度都是未知的,如果两个Label的文字都很多,就会出现互相挤压的情况,这个时候,两个Label谁该挤压谁就说不清楚了。所以AutoLayout系统也会给出一个错误提示。

效果

错误提示内容是:对这两个Label进行内容紧凑优先级调整、抗压缩系数调整。

优先系数越大、对现在的状态的维持力越强。比如内容紧凑优先级越大,内容越维持紧凑的状态;内容抗压缩优先级越大,内容越难被压缩。

所以在这个例子里,目标希望前面的内容不要被拉伸,保持紧凑状态,只需要将前面的Label的维持内容紧凑优先级调高(比后面的Label的紧凑级高1或N)即可。

效果

效果

摘自网上的描述:

“Content Compression Resistance Priority”,也叫内容压缩阻力优先级(小名:别挤我),该优先级越高,则越晚轮到被压缩。
“Content Hugging Priority”,也叫内容紧靠优先级(小名:别扯我),该优先级越高,这越晚轮到被拉伸。

所以当遇到上述情况时,灵活使用Content Hugging Priority和Content Compression Resistance Priority属性,即可让你的控件更听话。

文章来自 http://skymonkey.cn/

高能广告区

暂无广告哦=^^=。继续看看其它文章吧!