我有一个基于导航的Iphone应用程序。 在根视图(UITableView)之前,我想显示一个WELCOME视图,其中包含很少的UILabel和UIActivityIndicator。
当应用程序使用活动指示器启动时,将显示此WELCOME视图。 数据下载(通常解析XML并将数据从服务器存储到本地文件系统) 将在应用程序启动时在后台运行。
下载完成后,此视图将自动关闭并显示带有数据的主根视图(UITabkleView)。
我正在使用
-(void)viewDidLoad{
[self.indicator startAnimating]
[self performSelectorInBackground:selector(startDataDownload).....]
[self.indicator stopAnimating]
}
但不工作!!!
任何帮助都将受到高度赞赏。
由于
答案 0 :(得分:2)
你在queue.Call StopAnimating中调用startAnimatiing和stopAnimating,如下所示:
[self performselector:@selector(stop) withObject:nil afterDelay:3.0];
-(void)stop
{
[self.indicator stopAnimating];
}
答案 1 :(得分:1)
一些建议:
你检查过self.indicator有值吗?您的NIB或创建可能会出错。
您是否在主线程上执行数据下载?如果是这种情况,您可能不会给活动指示器提供显示的机会。
答案 2 :(得分:1)
什么不起作用?
它会立即停止动画,因为你直接调用stopAnimating方法而不是后台线程完成时。 (即:当前线程不会因为您通过另一个线程在后台加载某些内容而停止。)
另外,您确定在startDataDownload方法中正确设置了线程环境吗?
答案 3 :(得分:1)
您可能想尝试一个名为MBProgressHud的框架。它包括有关如何实施这些类型的进度指标的示例代码。
但是,如果您要继续使用代码,我建议将[self.indicator stopAnimating]
移动到startDataDownload
完成后调用的新方法中。作为测试,尝试评论该行并查看它是否甚至开始动画?