我试图在大量 UI 更新时显示活动指示器。
我最初的失败尝试是
- 在 view1 上显示活动指示器
- pushViewController(创建这个viewController的视图需要很长时间)
- 当view1的viewDidDisappear(当pushViewController的push动画发生时),隐藏activity indicator
问题是即使我在 pushViewController 之前确实调用了“显示活动指示器”,但由于在创建被推送的 viewController 的视图时发生了繁重的 UI,活动指示器没有显示。
我改变了策略如下,它有效,但我不明白为什么。
- 推视图控制器
- 在 viewController 的 viewDidLoad 处显示活动指示器
- 在 viewDidAppear 执行繁重的 UI 加载并隐藏指示器
我的印象是,第一种方法没有显示指示器的原因是由于 UI 处理繁重。
请参阅链接中的讨论。
(iphone) 在大量 ui 更新之前显示活动指示器
如果队列上的 UI 更新过多导致 UI 更新延迟(指示器未显示),为什么第二种方法会有所不同?
我知道只有在创建视图时才会调用 viewDidLoad 。
当视图实际显示在屏幕上时,会调用 viewDidAppear。(因此可以多次调用)
但是是否有根本的区别可以解释为什么使用 viewDidAppear 的第二种方法适用于我的情况?
除了所谓的主线程之外,还有没有 UI 更新线程?还是主线程是UI更新线程?
谢谢