正在加载今日诗词....
2 min read

极客时间 | iOS开发高手课 03 | Auto Layout 是怎么进行自动布局的,性能如何? | 读书笔记

极客时间 | iOS开发高手课 03 | Auto Layout 是怎么进行自动布局的,性能如何? | 读书笔记

--- 首先贴出极客时间原文地址 ----
03 | Auto Layout 是怎么进行自动布局的,性能如何?
这里只是对原文涉及到的部分知识点进行总结, 不会原文粘贴. 如有侵权,请联系我.

总结

  • iOS 6 系统时就引入了 Auto Layout
  • Auto Layout 依赖的是 Cassoway 算法, 其目的是 能够有效解析线性等式系统线性不等式系统,用来表示用户界面中那些相等关系和不等关系.
  • 整套布局引擎系统叫作 Layout Engine ,是 Auto Layout 的核心,主导着整个界面布局.
  • Auto Layout 仅仅是增加了一层自动将约束转换为 frame 的计算而已.
  • Auto LayoutiOS 11 之前有个问题, 复杂嵌套视图会将计算量带来指数式增长消耗 (原因是 NSISEnginer 会将约束重新计算,导致计算量的指数增长), 而 iOS 12 对其进行了极大优化, 更好地利用了 Cassoway 界面更新策略而解决了这一问题. 戴老师吐槽了一下, 这不是 Cassoway 的锅
  • 戴老师温馨建议 注意多使用 Compression Resistance PriorityHugging Priority 让布局更灵活,易维护.
  • Auto Layout 原生 API 不易用这个大家都知道, 所以 MasonrySnapkit 才这么流行.
  • 苹果为了提高 API 易用性而提供了 UIStackView 这种类似 Flexbox 的布局方式, 以及 VFL 这种 DSL (领域特定语言) 简化写法.

参考