极客时间 | iOS开发高手课 03 | Auto Layout 是怎么进行自动布局的,性能如何? | 读书笔记
--- 首先贴出极客时间原文地址 ----
03 | Auto Layout 是怎么进行自动布局的,性能如何?
这里只是对原文涉及到的部分知识点进行总结, 不会原文粘贴. 如有侵权,请联系我.
总结
iOS 6系统时就引入了Auto LayoutAuto Layout依赖的是Cassoway算法, 其目的是 能够有效解析线性等式系统和线性不等式系统,用来表示用户界面中那些相等关系和不等关系.- 整套布局引擎系统叫作
Layout Engine,是Auto Layout的核心,主导着整个界面布局. Auto Layout仅仅是增加了一层自动将约束转换为frame的计算而已.Auto Layout在iOS 11之前有个问题, 复杂嵌套视图会将计算量带来指数式增长消耗 (原因是NSISEnginer会将约束重新计算,导致计算量的指数增长), 而iOS 12对其进行了极大优化, 更好地利用了Cassoway界面更新策略而解决了这一问题. 戴老师吐槽了一下, 这不是 Cassoway 的锅- 戴老师温馨建议 注意多使用
Compression Resistance Priority和Hugging Priority让布局更灵活,易维护. Auto Layout原生API不易用这个大家都知道, 所以Masonry或Snapkit才这么流行.- 苹果为了提高
API易用性而提供了 UIStackView 这种类似Flexbox的布局方式, 以及 VFL 这种DSL(领域特定语言) 简化写法.
Discussion