数据下载时显示带活动指示的欢迎视图[iphone sdk]

时间:2010-12-09 10:47:47

标签: iphone background nsthread uiactivityindicatorview

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

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

下载完成后,此视图将自动关闭并显示带有数据的主根视图(UITabkleView)。

我正在使用

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

但不工作!!!
任何帮助都将受到高度赞赏。

由于

4 个答案:

答案 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完成后调用的新方法中。作为测试,尝试评论该行并查看它是否甚至开始动画?