ios - Swift:显示不同表格视图单元格的下载进度?
问题描述
好的,我已经查看了在可重用单元格中显示下载进度,但是在重新加载表格后,使用 URL Session 跟踪跨 tableview 单元格的下载进度时遇到了问题:
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
if totalBytesExpectedToWrite > 0 {
let progress = Float(Double(totalBytesWritten) / Double(totalBytesExpectedToWrite))
itemsDownloadingNow[(downloadTask.originalRequest?.url)!] = progress
//update
for (i, prog) in itemsDownloadingNow
{
if(i.lastPathComponent == episode?.enclosure?.url.lastPathComponent)
{
//is downloading
circleProgress?.percentage = prog
}
}
}
}
这是我迄今为止尝试过的(在 TableViewCell 类中),通过 URL 在全局字典中存储每个任务的进度:var itemsDownloadingNow = [URL: Float]()
如果未重新加载表(单元格被打乱),则此方法有效,但在重新加载循环后,进度回到零/不跟踪。我不知道如何正确执行此操作,并且不断更新圈子的唯一方法是将其放入此 URL 会话函数中。
如何跟踪每个单元格的下载进度?
解决方案
推荐阅读
- r - 为什么 ifelse 和 if 语句不一样?
- python - 如何从列表字典的值中获取所有键?
- javascript - 更改后的jexcel表SUM列
- html - 带有“section”元素的语义
- servicestack-text - FromObjectDictionary 方法中的错误返回值
- c# - DevExtreme - 带有 JSON 数据源和表单对象的手风琴内部表单
- swift - 主窗口并不总是在 applicationDidFinishLaunching 中初始化
- delphi-xe7 - 为什么 Delphi XE 7 将组件/事件定义放在错误的部分?
- android - MvvmCross MvxListView 项目未在 Android 上呈现
- css - 在 Flex 中,当 flex 方向为 row-reverse 时,将项目向左对齐