标签:
自动布局的发展
1.frame:通过代码计算 frame
iPhone3GS \ iPhone4 \ iPhone4S 屏幕的物理尺寸是一样的(无需屏幕适配), 而且一个当时的应用要么是横屏要么是竖屏, 不存在能同时进行横竖屏切换的应用
2.autoresizing :
autoresizing是UIView的属性,一直存在,使用也比较简单,但是没有autolayout那样强大。如果你的界面比较简单,要求的细节没有那么高,那么你完全可以使用autoresizing去进行自动布局
随着iPad 的发布, 屏幕物理大小发生了变化, 并且要求部分应用程序实现横竖屏切换,所以不能把控件的 frame 都写死了,需要进行屏幕适配。
Autoresizing的核心思想就是:参照父容器来设置子控件的 frame。不再写死 frame, 而是参照。
举例: 在竖屏下有一个按钮要占据整个屏幕宽度, 当切换到横屏下以后同样要占据整个屏幕的宽度
3.Auto Layout:
iOS有两大自动布局利器:autoresizing 和 autolayout(autolayout是IOS6以后新增)
随着 iPhone5 \ iPhone5s 等的发布苹果设备不同尺寸的屏幕变得越来越多, 不仅要求能根据控件父子关系来设置相对位置, 也要求能根据”任意”控件之间的关系来设置位置
因为 Autoresizing只能设置当前控件与父控件之间的相对关系, 当遇到要设置兄弟控件之间的关系的时候 Autoresizing就无能为力了
举例: 在竖屏下, 屏幕底部有两个按钮, 这两个按钮的间距为一个固定的值(宽度不指定);
当切换为横屏的时候要求这两个按钮还显示在屏幕底部, 并且按钮间的间距不变, 按钮可以随之变宽。
使用AutoLayout
4.Size Classes :
在iOS8中,新增了Size Classes特性
看时间作为补充, 今天的主要内容是"Auto Layout”
当 iPhone6发布以后, 苹果设备的屏幕越来越多(以后也可能出现更多不同大小的屏幕), 为了能更容易的适配不同的屏幕, 苹果推出了Size Classes 技术
通过 AutoLayout设置的约束, 约束一旦添加就会应用于各种屏幕(也就是说在各种不同的屏幕下都使用相同的约束)
通过 Size Classes + Auto Layout的方式, 可以为不同尺寸的屏幕设置不同的约束
标签:
原文地址:http://www.cnblogs.com/1023843587qq/p/4987285.html