2011-10-27 33 views
0

我正在尝试使用MBProgressHUD显示通过ASINetworkQueue下载的多个图像的下载进度。MBProgressHUD with ASIHTTPRequest

我已经将hud设置为networkQueue的进度委托,并且我还将hud的模式设置为MBProgressHUDModeDeterminate。

我可以使hud显示和隐藏,但我无法改变进度。直到networkQueue完成后,hud才会重新绘制自己。

我可以看到MBProgressHUD的drawRect永远不会被调用,但我不知道为什么。

如果有人能提供如何实现这一点的示例或伪代码,我将不胜感激。

感谢,

安德

回答

0

或许有两种可能的问题:

  1. 应用程序的主线程已被封锁;你是否在主线程或类似的地方调用'waitUntilAllOperationsAreFinished'?

  2. 如果服务器没有发送Content-Length:标头,ASIHTTPRequest不能报告进度,所以这也可能是问题。

+0

好的,我已经玩了一点我的程序,发现问题很可能与线程有关。我使用先前的ASIHTTPRequest的成功方法启动网络队列。如果我自己执行方法(如按下按钮),则会显示进度。我怎样才能解决这个问题? – bolshas

+0

现在我已经设法缩小我的搜索范围:问题真的出现在这个方法中:[downloadRequest setDidFinishSelector:@selector(imageDownloadComplete :)];在这个方法里面我有一个调用:[viewHolder.layer renderInContext:UIGraphicsGetCurrentContext()];如果我评论这一行,则会显示进度。 – bolshas