现在的位置: 首页 > 综合 > 正文

iOS AutoLayout自动布局中级开发教程(1)-浅谈autolayout

2018年04月08日 ⁄ 综合 ⁄ 共 894字 ⁄ 字号 评论关闭

原文地址:http://blog.csdn.net/yangbingbinga/article/details/42987899

何为autoLayout(自动布局,相对布局)? 按照我粗浅的理解,autolayout就是描述用来描述视图(控件)与视图之间的关系的一种工具;

当然,这种关系包括,子视图与子视图(如一个view上的两个button),子视图与父视图的关系(如一个Button距离他的父视图view右边界的距离);有大小关系(等高等宽),边界距离关系,有中心点(centerX 和 centerY)关系也有比例缩放(ratio)关系;

autolayout的原理实际上是基于数学的一次方程求解,最终算出 约束值;按照这个说法,如果你给一个一次方程组,能产生不同的结果,storyboard就不可能计算出唯一的正确的约束结果;例如,你添加了两个会产生冲突的约束(例如:一个button距离父视图view左边20距离右边100,又增加一个  centerX与父视图等中心的约束就会产生冲突);所以我们给出的约束,必须是没有冲突的(只要没有冲突,重复的约束是可以的,例如你在一个方程组中间重复的写了一个方程式,结果是不会变的);


autolayout原理示例:  view上四个button,距离边界都是0,且等宽,那么 我们可以列出一个方程式  4 X  = screenWidth;这样我们就可以求解出每一个button的宽度了

上面的描述,可能会有些抽象,我在后续的教程中会附上图片和代码,让大家可以更具体的了解autolayout

总结一下autolayout的使用原则:
1.所添加的约束,必须是能够确定一个视图的位置和大小的
2.所添加的约束,必须是可以计算的,能唯一得出 宽高或者边界值的
3.所添加的约束,必须是不冲突的,否则会导致崩溃(可以重复)
4.所添加的约束,在storyboard上默认是相邻的最近的视图之间的约束
5.所添加的约束,可能会不方便对该视图做相关约束的动画
6.所添加的约束,最好是以一个视图为基准添加,这样有利于修改,牵一发而动全身
7.autolaout可以和Frame绝对布局混合使用

抱歉!评论已关闭.