我的应用程序正在启动时加载在线plist,需要在tableview中显示将显示的数据。根据互联网连接,加载plist可能需要相当长的时间(4-5秒),并且整个时间都会显示启动屏幕。现在,我想在状态栏中放置一个活动指示器(当启动屏幕仍在运行时),以便用户知道应用程序正忙于加载。
我正在加载plist并在ViewDidLoad中创建数组等,我不确定如何实现我上面描绘的内容。
你对这件事有什么看法吗?感谢。
答案 0 :(得分:2)
如果我是你,我会重新考虑你的方法。除非您特别采取措施避免它,否则在applicationDidFinishLaunching:
返回之前,可能会调用下载plist的代码。这不好,因为如果需要很长时间,看门狗可能会在实际正确启动之前杀死你的应用程序。不是一件好事。
你应该真的在后台线程中开始下载,并在实际视图中粘贴一个微调器。所以像这样:
- (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];
});
});
}