适配
什么是适配?
- 适应、兼容各种不同的情况
移动开发中,适配的常见种类
- 系统适配
- 针对不同版本的操作系统进行适配
- 屏幕适配
- 针对不同大小的屏幕尺寸进行适配
- 系统适配
屏幕适配
iPhone的尺寸
- 3.5inch、4.0inch、4.7inch、5.5inch
iPad的尺寸
- 7.9inch、9.7inch
屏幕方向
- 竖屏
- 横屏
屏幕适配的发展历史
- iPhone3GS\iPhone4
- 没有屏幕适配可言
- 全部用frame、bounds、center进行布局
- 很多这样的现象:坐标值、宽度高度值全部写死
UIButton *btn1 = [[UIButton alloc] init];
btn1.frame = CGRectMake(0, 0, 320 - b, 480 - c);
iPad出现、iPhone横屏
- 出现Autoresizing技术
- 让横竖屏适配相对简单
- 让子控件可以跟随父控件的行为自动发生相应的变化
- 前提是:关闭Autolayout功能
- 局限性
- 只能解决子控件跟父控件的相对关系问题
- 不能解决兄弟控件的相对关系问题
- 出现Autoresizing技术
iOS 6.0(Xcode4)开始
- 出现了Autolayout技术
- 从Xcode5.0(iOS 7.0)开始,开始流行Autolayout
Autolayout
- Autolayout是一种“自动布局”技术,专门用来布局UI界面的
- Autolayout自iOS 6开始引入,由于Xcode 4的不给力,当时并没有得到很大推广
- 自iOS 7(Xcode 5)开始,Autolayout的开发效率得到很大的提升
- 苹果官方也推荐开发者尽量使用Autolayout来布局UI界面
- Autolayout能很轻松地解决屏幕适配的问题
Autoresizing
- 在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成
相比之下,Autolayout的功能比Autoresizing强大很多
Autolayout的2个核心概念
- 参照
- 约束
Autolayout常用面板
- 约束处理
- 相对布局
- 对齐布局
Masonry
- 目前最流行的Autolayout第三方框架
- 用优雅的代码方式编写Autolayout
- 省去了苹果官方的Autolayout代码
- 大大提高了开发效率
- 框架地址: