用frame进行布局主要需要4个信息,以父视图左上角为原点的x,y和width,height。 autoLayout布局也是建立在frame基础上的,最终会通过一个算法转换成frame的形式再展示视图。
autoLayout布局对程序员更友好,可以通过约束,指定各子视图之间的关系进行快速的布局,我们一般用的都是autoLayout。但是由于autoLayout需要将约束之类的计算成frame的形态,比较消耗cpu资源,特别是如何视图比较复杂页面渲染的时候不够流程,可能要考虑将autoLayout改成用frame直接布局。
frame布局省去了将约束之类的转换成frame的计算过程,节省cpu性能,但是对于程序员来说太麻烦,没有autoLayout好用。特别是适配多个不同尺寸手机的时候,autoLayout更显出他的优势。
autoLayout相当于是cpu给程序员做了一部分布局的计算工作,autoLayout肯定会越来越完善,苹果肯定会不断的优化算法,提升cpu性能,让我们程序员可以更无脑的编程的。
iOS12 的 Auto Layout 更加完善的利用了Cassowary算法的更新策略,使得AutoLayout已经基本拥有手写布局(frame)相同的性能。开发者完全可以放心使用。