一、什么是压缩阻力
压缩阻力是视图保护其内容不被压缩的方式,压缩阻力高的视图能够抵抗收缩,防止内容被压缩。一般出现在给视图的宽度的约束小于视图内容显示需要的宽度,这时视图内容就会被压缩
二、什么是内容吸附
内容吸附防止在视图与其核心内容间做填充或者直接伸展其核心内容。一般出现在给视图的宽度的约束大于视图内容显示需要的宽度,视图与其核心内容间就会被填充或者直接伸展其核心内容
注意:水平方向和垂直方向的“压缩阻力优先级”以及“内容吸附优先级”的使用方法是一样的,所以在下面的例子中只演示水平方向上面的使用
三、压缩阻力和内容吸附使用示例
压缩阻力默认值为750,内容吸附默认值为250(注意:设置的优先级不能和压缩阻力和内容吸附相同)
用IB设置起
当约束优先级小于压缩阻力和内容吸附时,会优先于压缩阻力和内容吸附的约束。
也可以通过代码设置压缩阻力和内容吸附:
let a = UIButton.init()
a.setContentHuggingPriority(.init(750), for: .horizontal)
a.setContentCompressionResistancePriority(.init(750), for: .vertical)
第一个参数为优先级,第二个参数为方向(水平/垂直)