我的应用程序在启动时加载了一个在线plist,这是在将显示的表视图中显示数据所需的。根据互联网连接的不同,加载plist可能需要相当长的时间(4-5秒),并且整个启动屏幕都会显示出来。现在,我想在状态栏中放置一个活动指示器(当启动屏幕仍然打开时),这样用户就可以知道应用程序正在忙于加载。
我正在加载plist并在ViewDidLoad中创建数组等,但我不确定如何实现上面概述的内容。
你对这件事有什么想法吗?谢谢。
发布于 2012-01-15 04:43:57
如果我是你,我会重新考虑你的方法。除非您特别采取措施来避免这种情况,否则下载plist的代码很可能会在applicationDidFinishLaunching:返回之前被调用。这是不好的,因为如果花了很长时间,那么看门狗可能会在你的应用程序真正正确启动之前就终止它。这不是一件好事。
你真的应该在后台线程中开始下载,只需要在你的实际视图中放置一个旋转器。所以就像这样:
- (void)viewDidLoad {
...
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(self.view.bounds.size.width / 2.0f, self.view.bounds.size.height / 2.0f);
[spinner startAnimating];
[self.view addSubview:spinner];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do your downloading of your plist, etc
dispatch_async(dispatch_get_main_queue(), ^{
[spinner removeFromSuperview];
});
});
}https://stackoverflow.com/questions/8865169
复制相似问题