Auto Layout生命周期

Auto Layout 拥有一套Layout Engine引擎,由它来主导页面的布局。APP启动后,主线程的Run Loop会一直处于监听状态,当约束发生变化会触发Deffered Layout Pass(延迟布局传递),在里面做容错处理(约束丢失等情况)并把view标识为dirty状态,然后Run Loop再次进入监听阶段。当下一次刷新屏幕动作来临(或调用layoutIfNeeded)时,Layout Engine 会从上到下调用layoutSubviews(),通过Cassowary算法计算各个子视图的位置,算出来后将子视图的frame从Layout Engine拷贝出来,接下来的过程就跟手写frame是一样的了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 先前写到的一篇Masonry心得文章里已经提到了很多AutoLayout相关的知识,这篇我会更加详细的对其知识要点...
    星光社的戴铭阅读 12,221评论 5 61
  • Auto Layout前世今生 Auto Layout ,是苹果公司提供的一个基于约束布局,动态计算视图大小和位置...
    蜗牛非牛阅读 4,581评论 0 2
  • 翻译自:Demystifying iOS Layout 在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和...
    Mr大喵喵阅读 3,017评论 0 3
  • 这世界上,有没有一个人,总是站在不远不近的地方看着你,祝福着你。他希望你幸福,希望你快乐,却不会给你任何压力...
    禅风墨羽阅读 6,707评论 85 79
  • 打从上幼儿园那会起,寒暑假就一直没离开过,混了30多年的校园,人人羡慕的寒暑假到底有多爽?上学那会是挺日夜期盼...
    Candy_dai阅读 3,638评论 1 5