Layout Engine 界面布局過程
Auto Layout 性能問題
實際情況是,iOS 12 之前,很多約束變化時都會重新創建一個計算引擎 NSISEnginer 將約束關系重新加進來,然后重新計算。結果就是,涉及到的約束關系變多時,新的計算引擎需要重新計算,最終導致計算量呈指數級增加。
iOS12之前:Auto Layout 并沒有用上 Cassowary 高效修改更新的特性。
iOS12 的 Auto Layout 更多地利用了 Cassowary 算法的界面更新策略,使其真正完成了高效的界面線性策略計算。
UIStackView 在父視圖里設置子視圖的排列方式