ViewDidAppear 更快
ViewDidAppear more faster
我有一个 UItextview,我可以在里面写入数据 Class 我可以在我的视图中的任何地方提供数据,在 ViewDidAppear 函数中我传递了我的数据,但它有点慢。文本在 0.2-0.3 秒后出现,我该如何解决这个问题?!
用viewDidLoad:
方法做。
查看 UIViewController 生命周期:
离线进行一些诊断后,我们得出的结论是,当您从一个选项卡切换到另一个选项卡时,有问题的延迟实际上只是标准延迟,并没有什么异常。这种延迟加剧了,因为我们是通过模拟器而不是真实设备观察 UX。所以,有几个结论:
始终使用实际设备而不是模拟器执行基准测试。
与其对感知到的延迟做出反应,不如始终量化效果,例如:
let start = CFAbsoluteTimeGetCurrent()
// do some stuff
let elapsed = CFAbsoluteTimeGetCurrent() - start
println(String(format: "%@ took %.2f seconds", __FUNCTION__, elapsed))
有时,使用 Instruments 中的 Time Profiler 工具(使用 "Record Waiting Threads" 选项)有助于追踪这些问题。有关此操作的实际演示,请参阅 WWDC 2012 视频 Building Concurrent User Interfaces on iOS.
我有一个 UItextview,我可以在里面写入数据 Class 我可以在我的视图中的任何地方提供数据,在 ViewDidAppear 函数中我传递了我的数据,但它有点慢。文本在 0.2-0.3 秒后出现,我该如何解决这个问题?!
用viewDidLoad:
方法做。
查看 UIViewController 生命周期:
离线进行一些诊断后,我们得出的结论是,当您从一个选项卡切换到另一个选项卡时,有问题的延迟实际上只是标准延迟,并没有什么异常。这种延迟加剧了,因为我们是通过模拟器而不是真实设备观察 UX。所以,有几个结论:
始终使用实际设备而不是模拟器执行基准测试。
与其对感知到的延迟做出反应,不如始终量化效果,例如:
let start = CFAbsoluteTimeGetCurrent() // do some stuff let elapsed = CFAbsoluteTimeGetCurrent() - start println(String(format: "%@ took %.2f seconds", __FUNCTION__, elapsed))
有时,使用 Instruments 中的 Time Profiler 工具(使用 "Record Waiting Threads" 选项)有助于追踪这些问题。有关此操作的实际演示,请参阅 WWDC 2012 视频 Building Concurrent User Interfaces on iOS.