代码之家  ›  专栏  ›  技术社区  ›  blue

Swift:显示不同tableview单元格的下载进度?

  •  0
  • blue  · 技术社区  · 7 年前

    Displaying download progress in reusable cells 但是在重新加载表之后,我在使用URL会话跟踪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]()

    如果不重新加载表(单元格被洗牌),但在重新加载后,循环进度返回到零/不跟踪,则此操作有效。我不知道如何正确地做到这一点,唯一的办法是不断更新的圆圈是把它放在这个网址会话函数。

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

    0 回复  |  直到 7 年前