AutoLayout中的Hugging和Compression优先级

本文详细解释了Auto Layout中视图的ContentCompressionResistancePriority和ContentHuggingPriority两个属性的作用。前者用于限制视图小于其内在大小的程度,后者则限制视图大于其内在大小的程度。这两个属性帮助开发者更好地控制视图的布局行为。

除了一般的约束关系和约束的优先级之外,对于那些根据内容拥有自身大小的View(例如UIImageView,UIButton,UILabel),还可以通过控制这两个优先级。

  • setContentCompressionResistancePriority:forAxis:
    Sets the priority with which a view resists being made smaller than its intrinsic size.

意思就是限制视图小于它的内在大小。

  • setContentHuggingPriority:forAxis:
    Returns the priority with which a view resists being made larger than its intrinsic size.

这个的意思是限制视图大于它的内在大小。

intrinsic size可以理解为View的内容的大小,比如UILabel就是它的字符串占用的空间大小。UIImageView就是它的image的size。

Content Compression Resistance = 不许挤我!
对,这个属性说白了就是“不许挤我”,这个属性的优先级(Priority)越高,越不“容易”被压缩。
也就是说,当整体的空间装不下所有的View的时候,Content Compression Resistance优先级越高的,显示的内容越完整。

Content Hugging = 抱紧!
这个属性的优先级越高,整个View就要越“抱紧”View里面的内容。也就是View的大小不会随着父级View的扩大而扩大。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值