以前做android的时候已经觉得布局方便的不行,几种简单的布局容器,再加上停靠和weight,基本所有需求都能满足,后来接触ios开发,一开始还担心自动布局复杂,学习成本高。接触几天后发现,一旦找到窍门,在布局的自由度上更胜android一筹,简直就是想怎么玩就怎么玩。
一:总
自动布局的核心用一句话表示就是:通过各种方法“确定”控件的位置和大小。这里的各种方法就是约束。
二:约束
(1)位置类约束
以上约束来举例,可以设置本控件的上边距离其它控件位置点(位置点包括:上下左右和中间)的距离。这里的距离是一个等式,可以通过这样的方式来理解:y=ax+b;y是最后设置的效果距离值,x是其他控件位置点的距离值,至于a,b都是你可以设置的参数值。使用时,本控件的位置点可以按需自由的参照其他控件的位置点来设置约束。比如,本控件的水平中间点可以等于父容器控件的水平中间点,这样就实现了水平居中。
(2)大小类约束
印象中就三个:宽,高,宽高比
三:最后
位置类约束和大小约束没必要都使用上,只要现有约束已经确定大小和位置了就没必要加冗余约束,会引起冲突。比如,你设置了一个控件的上下左右约束,这时候不仅位置,大小也都确定了。还有文字类的控件(UILabel类),本身就自带大小,所以可以不指定宽高。
待补充。。
网友评论
https://github.com/zhenglibao/FlexLib