objective-c - 如何使用 ASIHTTPRequest 在自定义 UITableViewCell 中显示下载进度?

标签 objective-c ios uitableview asihttprequest

我正在尝试实现一个列表语言包,可以通过选择包含 UIProgressBar 的自定义 UITableViewCell 下载该包。对于每个语言包,我想显示下载进度。我通过设置此委托(delegate) setDownloadProgressDelegate: 来完成此操作。

除了 UIProgressBar 移出可见区域外,一切都很好。这是有道理的,因为委托(delegate)进度条已被删除。如何避免应用程序崩溃?如果进度条返回可见区域,如何显示?

Hier 是一张图片,可以看到它现在的样子。

Custom UITableViewCell with UIProgressBar

谢谢

最佳答案

我想您可以使用自己的类(甚至 View Controller )作为进度委托(delegate)。在您的 View Controller 中,您可以保存对当前使用的所有进度条的引用数组。您将为每次下载创建一个进度条并将其保存在数组中(这样该对象就不会被破坏)。无论何时创建单元格,您现在都必须检查数组中是否有相应的进度条对象,而不是创建一个新的。每当下载完成并且不再需要进度条时,您将其从数组中删除。

注意可能的多线程问题,如有必要(例如,如果您的通知可能到达主线程以外的另一个线程)使用 performSelectorOnMainThread: 更新进度条数组和其中的进度条。

关于objective-c - 如何使用 ASIHTTPRequest 在自定义 UITableViewCell 中显示下载进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048604/

相关文章:

ios - 为什么在 iPhone 中使用普通、@2x 和@3x 大小的图像,而您只能使用 @3x 并在不同的大小类别中设置约束?

ios - 触摸单元格并打开一个新的 View Controller

ios - 在 8 行后在 textview 的末尾阅读更多可点击的文本

iOS:使用自定义 UITableViewCell 还是使用 Cell viewWithTag?

c# - 将复杂数据类型从纯 c 插件传递到 Unity C# 脚本

ios - 通过 BackgroundTask 在后台维护多点连接 session ?

ios - iOS 上有html5 音频限制,是否可以同时播放背景音乐和音效?

ios - 如何将 UITableViewCell 定位在屏幕底部?

ios - 不寻常的 stringWithFormat : argument

ios - 对 NSDictionary 的 NSArray 进行排序