Mostrar el progreso de descarga en celdas reutilizables

Estoy tratando de mostrar el progreso de descarga en mis celdas de vista de colección. Actualmente estoy usando el bloque de progreso de análisis que tiene una instancia de la celda y actualiza la barra de progreso.

}, progressBlock: { (percent) in
    self.mainQueue.addOperation {

    // set the downloadProgess var to update from cellForItemAt
    // downloadProgress = (Float(percent) / Float(100))

    if let downloadingCell = self.collectionView.cellForItem(at: self.indexPath) as? InnerCollectionCell {
        downloadingCell.progressBar.isHidden = false
        downloadingCell.contentView.bringSubview(toFront: downloadingCell.progressBar)
        downloadingCell.progressBar.setProgress(Float(percent) / Float(100), animated: true)
        downloadingCell.setNeedsDisplay()
        downloadingCell.setNeedsLayout()
        downloadingCell.isUserInteractionEnabled = false
        downloadingCell.spinner.isHidden = true
    }
}
})

Así que esto funciona bien, el problema que ahora tengo es que si dejo este controlador de vista y luego vuelvo para ver cómo van las descargas, la instancia de la celda se ha reutilizado y ninguno de los elementos deseados de la interfaz de usuario es visible pero el progreso sigue avanzando lejos en el fondo.

El único lugar en el que puedo pensar para volver a mostrar los elementos de la interfaz de usuario es en cellForItemAt. El problema es que el progreso no se actualiza, solo muestra el valor en el momento en que se volvió a cargar la celda.

¿Cómo puedo reutilizar la instancia de la celda que está usando el bloque de progreso o mostrar limpiamente elementos de interfaz de usuario que continúan actualizándose?

Respuestas a la pregunta(1)

Su respuesta a la pregunta