从URL下载时出现UIActivityIndi​​cator问题

时间:2009-05-15 06:59:31

标签: iphone

我正在尝试从URL下载图片并使用动画活动指示器来显示文件正在下载的事实。但是,当我调用此下载功能时,它不起作用,因为我的指示器没有动画,有人能告诉我原因吗?

-(void)download{
    [indicator startAnimating];
    NSString *downloadPath=@"http://www.xyz.com/path/pic.jpg; 
    NSData *downloadData=[NSData dataWithContentsOfURL:[ NSURL  URLWithString:downloadPath]];
    if(downloadData){
           //do something
          [indicator stopAnimating];
     }
      else{
        //do something
        [indicator stopAnimating];
          }
     }

2 个答案:

答案 0 :(得分:0)

您需要输入[指示器startAnimating]和[指示器stopAnimating];在单独的方法。我相信在方法结束之前动画才会启动。所以,如果你将它分成几个方法,这应该可行

  • 启动动画的一种方法
  • 下载文件的一种方法。
  • 停止动画的一种方法。

另一种选择是线程来实现这一点。更多信息here

答案 1 :(得分:0)

动画在事件循环中执行,该循环与代码位于同一个线程中。也就是说,代码执行时动画不会启动。

相反,您需要忘记动画,切换到使用异步下载方法或在单独的线程中执行下载。我推荐使用async选项。