最初刚工作时,用过一段时间的SB界面式开发,后来换了团队后大家换为纯代码布局。现在针对某些模块进行可视化布局开发,所以总结一下当初的约束使用方法,温故而知新。
- 约束优先级
如上图,label控件的1号和2号约束代表左右约束。
点击某一个具体约束,右侧就会显示出此约束的详细信息。其中Priority的值就是此约束的优先级,分为三种,required(1000)为默认的比例等级,High(750)为高优先级,Low(250)为低优先级。值越高则优先级越强。
例如:label控件中的1号约束优先级为1000,2号约束优先级750,那么就意味着label的右侧比左侧更容易“改变”。 - 抗拉伸属性
抗压缩代表A控件不被别的控件相对A控件设置的约束而拉伸或变形。在sb中此属性如图:hugging属性就是抗拉伸属性,拥有水平方向的抗压缩和垂直方向的抗压缩优先级两个选项。
例如:当控件的hugging值在水平方向上为250时,它自身的抗拉伸优先级是低于左右两侧的约束的优先级的,如果控件的内容已经多于当前控件能容纳的“体积”,或者左右约束的值此刻变小,则这个控件会被拉伸。
- 抗压缩属性
抗压缩代表A控件不被别的控件相对A控件设置的约束而压缩或变形。在sb中此属性如图:Content Compression属性就是抗压缩属性,拥有水平方向的抗压缩和垂直方向的抗压缩优先级两个选项。
例如:当控件的compression值在水平方向低于1000时,而2号约束的优先级为1000,那么当2号约束右侧的空间内容变大时,则2号约束会把label控件向左“挤”,因为它的抗压缩值不足以和2号约束优先级值相对抗。