iOS自动布局

来源:互联网 发布:js 鼠标移动事件 编辑:程序博客网 时间:2024/06/03 21:34

*一.iOS开发者经历的屏幕适配历程*
1.不需要适配(只有一种尺寸,3.5寸),直接使用frame设置大小 .
2.随着ipad的发布,苹果推出了autoresizing来适配横竖屏适配 autoreszing 只能相对父控件设置规则来显示子控件,不能设置兄弟控件的相对关系的,显然不能满足当前的开发需求
3.随着苹果产品线的扩大,屏幕尺寸适配也变得越来越复杂,苹果在iOS6推出了autoLayout来帮助开发者进行布局,与autoresizing不能同时使用
注意:使用autoreszing之前一定要关掉autoLayout,默认autoLayout是开启的
这里写图片描述
使用autoLayout所有的屏幕尺寸都使用同一布局规则
4.最后苹果为了能在不同屏幕下来设置不同的布局规则,在iOS8推出了sizeclasss,必须与autoLayout配合使用
*二.自动布局autoLayout的使用*
所谓的自动布局,就是对控件添加各种约束,使之能唯一确定在屏幕的位置.当然约束不能过多也不能少,否则会造成约束冲突或者约束不足的问题.
1.使用storyBoard自动布局


注意不要勾选constrain to margin
2.使用代码自动布局
系统提供两种方法设置约束,注意translatesAutoresizingMaskIntoConstraints需设置为NO,在添加约束前,视图必须已经添加在父视图中,否则编译报错.
1).逐个设置NSLayoutConstraint约束
这里写图片描述
这里写图片描述
2).可视化语言添加约束VFL,代码更简洁
这里写图片描述
这里写图片描述
三. autoLayout三方库的使用
另外目前针对autoLayout,比较多使用的有Masonry,具体使用参考:(http://www.cocoachina.com/ios/20141219/10702.html)和SDAutoLayout(支持pod: pod ‘SDAutoLayout’, ‘~> 1.52’).这两者都是用优雅的链式语对自动布局进行轻量级的分装库,两者的语法也极为的相似,自认为后者更符合国人的语法习惯。
简单的介绍下SDAutoLayout的使用这里写图片描述
这里写图片描述

详细的SDAutoLayout使用,可以去git下载demo:这里写链接内容

0 0
原创粉丝点击