1

我有一个基于导航的 Iphone 应用程序。在根视图(UITableView)之前,我想显示一个带有少量 UILabel 和 UIActivityIndi​​cator 的 WELCOME 视图。

当应用程序使用活动指示器启动时,将显示此 WELCOME 视图。数据下载(通常是解析 XML 并将数据从服务器存储到本地文件系统)将在应用程序启动时在后台运行。

当下载完成时,这个视图将自动关闭并显示主根视图(UITabkleView)和数据。

我在用

-(void)viewDidLoad{
 [self.indicator startAnimating]
 [self performSelectorInBackground:selector(startDataDownload).....]        
 [self.indicator stopAnimating]
}

但是不行!!!
任何帮助将不胜感激。

谢谢

4

4 回答 4

2

您在 queue.Call StopAnimating 中调用 startAnimatiing 和 stopAnimating ,如下所示:

[self performselector:@selector(stop) withObject:nil afterDelay:3.0];


-(void)stop
{
   [self.indicator stopAnimating];
}
于 2012-08-08T11:59:34.187 回答
1

一些建议:

你检查过 self.indicator 有值吗?您的 NIB 或创建可能有错误。

您是否在主线程上执行数据下载?如果是这种情况,您可能没有机会显示活动指示器。

于 2010-12-09T15:01:56.950 回答
1

什么不工作?

它显然会立即停止动画,因为您是立即调用 stopAnimating 方法,而不是在后台线程完成时。(即:当前线程不会因为您通过另一个线程在后台加载某些内容而停止。)

另外,您确定在 startDataDownload 方法中正确设置了线程环境吗?

于 2010-12-09T15:02:58.597 回答
1

您可能想尝试一个名为MBProgressHud的框架。它包括有关如何实现这些类型的进度指示器的示例代码。

但是,如果您要继续使用您的代码,我建议您使用一个在完成[self.indicator stopAnimating]后调用的新方法startDataDownload。作为测试,尝试注释掉该行并查看它是否甚至开始动画?

于 2010-12-09T16:42:09.267 回答