适配
什么是适配?
适应、兼容各种不同的情况
移动开发中,适配的常见种类
-
系统适配
- 针对不同版本的操作系统进行适配
-
屏幕适配
- 针对不同大小的屏幕尺寸进行适配
屏幕适配
- 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能很轻松地解决屏幕适配的问题
Autolayout的警告和错误
-
警告
- 控件的frame不匹配所添加的约束, 比如
- 比如约束控件的宽度为100, 而控件现在的宽度是110
-
错误
缺乏必要的约束, 比如
只约束了宽度和高度, 没有约束具体的位置
两个约束冲突, 比如
1个约束控件的宽度为100, 1个约束控件的宽度为110