推送视图控制器时延迟(iOS)
Posted
技术标签:
【中文标题】推送视图控制器时延迟(iOS)【英文标题】:Delay when pushing view controller (iOS) 【发布时间】:2017-10-04 17:38:12 【问题描述】:我有一个 UIViewController,称之为ViewControllerB
,我试图从 ViewControllerA 推送它。 ViewControllerB
拥有大量来自库(日历、分段控件等)的自定义 UI,以及带有 tableViews 的 UIPageViewController。
我注意到当我推送ViewControllerB
时有 1-3 秒的延迟,并且在使用时间分析器时,我能够追踪到由于在 viewDidLoad 中设置这些 UI 而导致的主线程阻塞。因此,在推送视图控制器之前,该应用似乎需要一些时间来设置 UI。
设置大量 UI 但在推送视图控制器时避免阻塞主线程的最佳方法是什么?
【问题讨论】:
从 viewDidLoad 和 viewWillAppear 方法中删除所有代码并保留在 viewDidAppear 中。 【参考方案1】:在初始化阻塞主线程时有太多布局。仅在 init、viewDidLoad 和 viewWillAppear 方法中布局必要的内容,以及在 viewDidAppear 中执行的任何其他操作。
【讨论】:
以上是关于推送视图控制器时延迟(iOS)的主要内容,如果未能解决你的问题,请参考以下文章