iOS StroyBoard中AutoLayout高级约束之约束优先级

最初刚工作时,用过一段时间的SB界面式开发,后来换了团队后大家换为纯代码布局。现在针对某些模块进行可视化布局开发,所以总结一下当初的约束使用方法,温故而知新。

  1. 约束优先级
    图片描述

    如上图,label控件的1号和2号约束代表左右约束。

    图片描述

    点击某一个具体约束,右侧就会显示出此约束的详细信息。其中Priority的值就是此约束的优先级,分为三种,required(1000)为默认的比例等级,High(750)为高优先级,Low(250)为低优先级。值越高则优先级越强。
    例如:label控件中的1号约束优先级为1000,2号约束优先级750,那么就意味着label的右侧比左侧更容易“改变”。

  2. 抗拉伸属性
    抗压缩代表A控件不被别的控件相对A控件设置的约束而拉伸或变形。在sb中此属性如图:图片描述

    hugging属性就是抗拉伸属性,拥有水平方向的抗压缩和垂直方向的抗压缩优先级两个选项。

    例如:当控件的hugging值在水平方向上为250时,它自身的抗拉伸优先级是低于左右两侧的约束的优先级的,如果控件的内容已经多于当前控件能容纳的“体积”,或者左右约束的值此刻变小,则这个控件会被拉伸。

  3. 抗压缩属性
    抗压缩代表A控件不被别的控件相对A控件设置的约束而压缩或变形。在sb中此属性如图:图片描述

    Content Compression属性就是抗压缩属性,拥有水平方向的抗压缩和垂直方向的抗压缩优先级两个选项。

    例如:当控件的compression值在水平方向低于1000时,而2号约束的优先级为1000,那么当2号约束右侧的空间内容变大时,则2号约束会把label控件向左“挤”,因为它的抗压缩值不足以和2号约束优先级值相对抗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值