以swift语言在自定义表格视图单元格中更新进度视图下载

Posted

技术标签:

【中文标题】以swift语言在自定义表格视图单元格中更新进度视图下载【英文标题】:update progress view download within custom table view cell in swift language 【发布时间】:2017-03-13 09:19:01 【问题描述】:

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

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】:

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

 if let movieData = movieObject.data 
    dispatch_get_main_queue().asynchronously() 
         movieProgreesView.progress = movieData
      
 

【讨论】:

我在上面的自定义表格视图单元格对象中像你一样,我如何在从互联网下载电影的过程中更新进度视图?如果我重新加载表格视图,它可以工作,但需要使用巨大的内存,我只需要更新进度视图 查看下载进度github.com/cmoulton/grokhtmlAndDownloads/tree/progress

以上是关于以swift语言在自定义表格视图单元格中更新进度视图下载的主要内容,如果未能解决你的问题,请参考以下文章

如何停止在自定义表格视图单元格中交换数据?

如何在自定义表格视图单元格中保存文本字段

无法在自定义表格视图单元格中使 ImageView 成为一个圆圈

图像的滚动视图在自定义表格视图单元格中不起作用

在自定义表格单元中更改图像视图

如何在自定义单元格中点击以编程方式添加的 UiImageViews 推送新视图