0

我有一个应用程序,它检索一个XML文件,解析它,然后在UITableView. 当应用程序加载时一切正常。当您点击另一个选项卡时,tabViewController它会暂停片刻并加载下一个视图。我需要在NetworkActivityIndicator发生这种情况时开始制作动画,但我在放置代码的位置时遇到了一些麻烦。

我已经尝试在其他任何事情开始发生之前将它放在viewDidLoad方法中,但结果是活动指示器在视图已经完全加载后开始动画。如果我将一条NSLog语句放在相同的位置,它会在点击选项卡时立即出现在调试器控制台中。为什么活动指示器也没有立即动画?任何帮助表示赞赏。谢谢!

4

1 回答 1

0

听起来您正在主线程上加载文件。运行循环仅在每个循环上更改 UI,因此如果您在加载时冻结主线程,则在完成之前不会发生任何变化。您应该考虑异步加载...

解决这个问题的一个稍微笨拙的方法是在将网络指示器设置为可见后立即执行循环:

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
于 2012-11-27T14:28:21.913 回答