使用swift语言更新自定义表格视图单元格中的进度视图下载

时间:2017-03-13 09:19:01

标签: swift3 tableview tableviewcell uiprogressview

我有一个问题,如何在我的自定义表格视图单元格中更新我的进度视图,这是从互联网下载文件?如果我重新加载表视图,它会占用大量内存并增加内存

tableView.reloadData()

如果我重新加载唯一一个部分,它也会占用大量内存并增加内存

 tableView.reloadSections([0], with: .none)

那么请问在我的自定义表格视图单元格中更新进度视图的最佳方法是什么?

以下我的自定义表视图类:

import UIKit

class DownloadingTableViewCell: UITableViewCell {

    @IBOutlet weak var movieDeleteButton: UIButton!
    @IBOutlet weak var movieImageView: UIImageView!
    @IBOutlet weak var movieNameLabel: UILabel!
    @IBOutlet weak var movieProgreesView: UIProgressView!
    @IBOutlet weak var movieSizeLabel: UILabel!

    weak var movieObject:DownloadVideo? {
        didSet {
            updateUI()
        }
    }

    func updateUI() {

        movieImageView.image = nil
        movieNameLabel.text = nil
        movieSizeLabel.text = nil
        movieProgreesView.progress = 0.0

        if let movieObject = movieObject {

            movieImageView.image = UIImage(named: "movie")
            movieNameLabel.text = movieObject.videoName

             // set the label size file
            if movieObject.totalData != nil {
            let totalSize = ByteCountFormatter.string(fromByteCount:movieObject.totalData!, countStyle: .binary)
            movieSizeLabel.text = String(format: "%.1f%% of %@", (movieObject.data)! * 100 ,totalSize)
            }
            /////////////////////////

            if let movieData = movieObject.data {
               movieProgreesView.progress = movieData
            }

        }// end the fetch object 
    }
}

非常感谢

1 个答案:

答案 0 :(得分:0)

您应该在数据源中添加与文件下载进度相关的参数并在主线程中更新进度

    def __str__(self):
        return self.name.encode('utf-8')