Swift: показать ход загрузки для разных ячеек таблицы? - PullRequest
0 голосов
/ 09 июня 2018

Хорошо, я посмотрел на Отображение прогресса загрузки в многократно используемых ячейках , но у меня возникла проблема с использованием сеанса URL-адреса для отслеживания прогресса загрузки по ячейкам табличного представления после перезагрузки таблицы:

 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-сессии.

Как я могу отслеживать ход загрузки на ячейку?

...