ios UILable自包裹

ContentHuggingPriority与ContentCompressionResistancePriority的使用

参考:https://www.jianshu.com/p/d1258a9dec11

参考:https://www.jianshu.com/p/62c5bdef1055 

 

在项目中,我经常用 masonry 布局页面,常常遇到两个 label 宽度不相等造成的显示问题,下面来总结一下:
现左右两个Label的宽度不相等,此时需要根据设置setContentHuggingPriority 和 setContentCompressionResistancePriority 来控制哪边的 label 拉伸,哪边的 label 收缩。

先说明一下:
ContentHuggingPriority ==> 表示当前的Label的内容不想被拉伸
ContentCompressionResistancePriority ==> 表示当前的Label的内容不想被收缩

默认情况下: HuggingPriority == 250, CompressionResistancePriority == 750

需要考虑两种情况:
1、左右两边数据均不足的时候,谁拉伸?
2、左右两边数据均充足的时候,谁收缩?

左右两边数据均不足的时候,谁拉伸:
这个由HuggingPriority控制。
如果想让左边的内容拉伸,就设置左边的数值<250(或让右边的>250);如果想让右边的内容拉伸,就设置右边的数值<250 (或让左边的>250)。左右两个Label对比,数值越大,越不想被拉伸,结果也不会被拉伸;数值越小,越容易被拉伸。

 
左右两边数据都充足的时候,谁收缩:
这个由ContentCompressionResistancePriority控制。如果想让左边的内容收缩,就设置左边的数值<750(或让右边的>750);如果想让右边的内容收缩,就设置右边的数值<750(或让左边的>750)。

总结:
    //1、水平方向自包裹>250   2、自动拉伸即:铺满全行(沾满剩余的所有空间)。 <250
    //[titleInfoLable setContentHuggingPriority:260 forAxis:UILayoutConstraintAxisHorizontal];
    [titleInfoLable setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
    titleInfoLable.backgroundColor=[UIColor redColor];

 

 

 

1.Content Hugging Priority

视图抗拉伸优先级,
值越小,视图越容易被拉伸,

2. Content Compression Resistance Priority:

视图抗压缩优先级,
值越小,视图越容易被压缩,

 

 

 
 
 
posted @ 2022-03-16 10:36  张亚楠  阅读(54)  评论(0编辑  收藏  举报