1.Autolayout技术
在iOS6苹果引入自动布局技术,也成为Autolayout技术;其采用的是添加约束的方式进行布局,简单理解是将绝对布局改为相对布局。
Autolayout并非只是单纯的某一项技术,是多种技术的组合。分为三部分:
第一部分是应用层的描述部分。主要包括提供约束的各种数据类型,即为组件添加约束信息。
第二部分是解析引擎部分。Autolayout技术的核心源于Cassowary约束解析工具包,提供一套算法来解决用户界面问题。
第三部分是iOS的UI渲染系统。iOS的UI渲染系统会从底层的布局效率进行优化。
相对于绝对布局,Autolayout技术会多一些性能上的消耗,约束对象的创建和解析和Cassowary算法的执行都消耗一些时间,但是这种影响可以忽略不计;但是可以让开发者更加高效的进行页面开发,方便适配各种尺寸的设备。
2.布局计生户优缺点
NSlayoutConstraint:构造对象代码太繁琐;
使用VFL字符串生成约束对象又缺少编译时的安全检查;
因此实际开发中开发者一般都会选择SnapKit(Swift)和Masonry(OC)进行视图的自动布局。
iOS9 引入的布局锚点,布局代码的写法风格已十分接近第三方库。