在项目中,我经常用 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)。
左右两边数据都充足时
网友评论