我正在尝试从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];
}
}
答案 0 :(得分:0)
您需要输入[指示器startAnimating]和[指示器stopAnimating];在单独的方法。我相信在方法结束之前动画才会启动。所以,如果你将它分成几个方法,这应该可行
另一种选择是线程来实现这一点。更多信息here
答案 1 :(得分:0)
动画在事件循环中执行,该循环与代码位于同一个线程中。也就是说,代码执行时动画不会启动。
相反,您需要忘记动画,切换到使用异步下载方法或在单独的线程中执行下载。我推荐使用async选项。