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)。
这个由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:
视图抗压缩优先级,
值越小,视图越容易被压缩,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!