网络活动指标放置问题

时间:2012-11-27 14:16:50

标签: objective-c ios xcode

我有一个应用程序,它检索XML文件,解析它,然后在UITableView内显示数据。当应用程序加载一切都很好。当您点按tabViewController中的其他标签时,它会暂停一会儿并加载下一个视图。我需要NetworkActivityIndicator才能在发生这种情况时开始制作动画,但是我在哪里放置代码时遇到了一些麻烦。

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

1 个答案:

答案 0 :(得分:0)

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

解决这个问题的一个简单的方法是在设置网络指示器后立即执行循环:

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];