我正在尝试实现一个列表语言包,可以通过选择包含 UIProgressBar 的自定义 UITableViewCell 下载该包。对于每个语言包,我想显示下载进度。我通过设置此委托(delegate) setDownloadProgressDelegate:
来完成此操作。
除了 UIProgressBar 移出可见区域外,一切都很好。这是有道理的,因为委托(delegate)进度条已被删除。如何避免应用程序崩溃?如果进度条返回可见区域,如何显示?
Hier 是一张图片,可以看到它现在的样子。
谢谢
最佳答案
我想您可以使用自己的类(甚至 View Controller )作为进度委托(delegate)。在您的 View Controller 中,您可以保存对当前使用的所有进度条的引用数组。您将为每次下载创建一个进度条并将其保存在数组中(这样该对象就不会被破坏)。无论何时创建单元格,您现在都必须检查数组中是否有相应的进度条对象,而不是创建一个新的。每当下载完成并且不再需要进度条时,您将其从数组中删除。
注意可能的多线程问题,如有必要(例如,如果您的通知可能到达主线程以外的另一个线程)使用 performSelectorOnMainThread:
更新进度条数组和其中的进度条。
关于objective-c - 如何使用 ASIHTTPRequest 在自定义 UITableViewCell 中显示下载进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048604/