本人有若干成套学习视频, 可试看! 可试看! 可试看, 重要的事情说三遍 包含Java
, 数据结构与算法
, iOS
, 安卓
, python
, flutter
等等, 如有需要, 联系微信tsaievan
.
(一) 压缩阻力
压缩阻力是指一个视图保护其内容完整性的能力
压缩阻力越大, 该视图保护其内容完整性的能力就越强, 内容越不容易被压缩或裁剪, 反之, 该视图保护其内容完整性的能力就越弱, 内容就越容易被压缩或裁剪.
系统用约束优先级的高低来表示视图压缩阻力的大小, 约束优先级越高, 也就是NSLayoutConstraints
类实例的priority
属性值越大, 视图的压缩阻力越大, 反之, 视图的压缩阻力越小.
视图要保证内容的完整性, 就是要保证内容的尺寸不要被轻易压缩.
image.png如上图所示, 默认的
content compression resistance priority
是750
, 所以默认的label
的完整性是会被压缩的. 但是如果只是改到1000
, 也不会比其他的约束优先级大, 因为都是1000
, 所以还是会被压缩.
如果想不被压缩, 只能是牺牲某一个约束, 如下图所示, 将两个label
间距的优先级改为750
, 此时约束的线变成了蓝色的虚线, 这时候间距会被压缩, label就可以完整地显示出来了
(二) 内容吸附
内容吸附是指一个视图保持它的尺寸与其内容尺寸相匹配的能力, 内容吸附能力越强, 该视图保持它的尺寸与其内容尺寸相匹配的能力越强, 反之, 该视图保持它的尺寸与其内容尺寸相匹配的能力就越弱.
系统用约束的优先级的高低来表示内容吸附的能力的强弱, 约束优先级越高, 也就是NSLayoutConstraints
类实例的priority
属性值越大, 视图的吸附能力越强, 反之, 视图的吸附能力越弱.
由下图可以看到, 当content hugging priority
越大, 一个视图保持它的尺寸与其内容尺寸相匹配的能力就越强.
网友评论