Проблема с созданием пользовательской ячейки UITableViewCell с просмотром хода выполнения в каждой ячейке

#ios #swift #iphone #uitableview #nsurlsessiondownloadtask

Вопрос:

Изображение 1

После прокрутки вниз и вверх. индикатор выполнения пуст ??

Изображение 2

  1. Пользовательская ячейка для каждой ячейки и загрузка через сеанс URL.
     ## custom cell class chattingCustomCell: UITableViewCell {    var downloadCustomTask:URLSessionDownloadTask!  lazy var progressView : UIProgressView = {   let progress = UIProgressView.init()  progress.tintColor = .red  return progress  }()     lazy var lbProgressView : UILabel = {   let lb = UILabel.init()  lb.textAlignment = .center  return lb  }()   func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {  {  DispatchQueue.main.async{   if totalBytesExpectedToWrite gt; 0 {  let progress = Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)   self.progressView.progress = progress  self.lbProgressView.text = "(Float(totalBytesWritten)) / (Float(totalBytesExpectedToWrite))"   // DispatchQueue.main.async {   self.appDelegate.function.loglog(methodDesc: "(NSStringFromClass(self.classForCoder))", str: "Video download progress : (progress) -gt; (Float(totalBytesWritten))/ (Float(totalBytesExpectedToWrite))")   // self.Progress.progress=progress   if(progress == 1)  {   self.appDelegate.function.loglog(methodDesc: "(NSStringFromClass(self.classForCoder))", str: "Progress : done")     }  // }   // debugPrint("Progress (downloadTask) (progress)")  }  }  }  }  .....     override func setSelected(_ selected: Bool, animated: Bool) {  super.setSelected(selected, animated: animated)    progressView = UIProgressView.init(frame: CGRect(x: (imageFrame.frame.size.width/2)-(150/2), y: (imageFrame.frame.size.height/2), width: 150, height: 10))  progressView.backgroundColor = UIColor.red  progressView.layer.zPosition = 10  progressView.progress = 0  self.imageFrame.addSubview(progressView)  lbProgressView = UILabel.init(frame: CGRect(x: (imageFrame.frame.size.width/2)-(150/2), y: (imageFrame.frame.size.height/2) 10, width: 150, height: 10))  lbProgressView.font = UIFont.systemFont(ofSize: 10)  lbProgressView.textAlignment = .center  self.imageFrame.addSubview(lbProgressView)    }  
  2. если не прокручивать экран, он идеально подходит для загрузки видео в каждую ячейку со статусом прогресса отображения.
  3. при прокрутке вниз и прокрутке экрана вверх. просмотр хода выполнения он пуст, но urlsession все еще загружается.

как это исправить. Спасибо вам за заранее.

Комментарии:

1. При прокрутке , если загрузка все еще продолжается, вам необходимо обновить представление хода выполнения, вызвав какой-либо метод из источника представления данных. Наличие сеанса URL-адреса в ячейке может быть не очень хорошей идеей : что происходит, когда ячейка используется повторно?

2. потому что я хочу использовать ячейку для загрузки с прогрессом. Я пробую много решений. это ее работа. аванс для меня. благодарить

3. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

4. когда ячейка загружает видео первой. его шоу прогрессивно работает нормально. и после прокрутки вниз и вверх tableview . повторное использование ячеек и постепенное их заполнение и не обновление.