首页 > 解决方案 > 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 会话函数中。

如何跟踪每个单元格的下载进度?

标签: iosswiftuitableviewtableviewurlsession

解决方案


推荐阅读