onAppear 的调用时机

onAppear 的调用时机

💡 原文中文,约4300字,阅读约需11分钟。
📝

内容提要

本文通过SwiftUI 4的新API证明了onAppear修饰符在布局之后、渲染之前被调用。通过添加代码判断视图的求值、布局和渲染阶段,可以确定onAppear的调用时机。第一段代码出现数组越界错误是因为视图还未进入布局阶段,可以通过判断数组是否为空来避免错误。第二段代码可以正常运行是因为在布局后调用了onAppear闭包给数组赋值,导致视图重新刷新。通过这些证据可以确认onAppear确实是在布局之后、渲染之前被调用的。

🎯

关键要点

  • onAppear修饰符在布局之后、渲染之前被调用。
  • SwiftUI视图经历创建实例、求值、布局和渲染四个阶段。
  • 第一段代码出现数组越界错误是因为视图尚未进入布局阶段。
  • 第二段代码正常运行是因为在布局后调用了onAppear闭包。
  • 通过SwiftUI 4的新API可以确认onAppear的调用时机。
  • 使用Layout协议可以判断视图是否处于布局阶段。
  • UIViewControllerRepresentable可以帮助判断视图准备渲染的状态。
  • 输出结果显示视图处理的全过程,验证了onAppear的调用时机。
➡️

继续阅读