Exibindo o progresso do download em células reutilizáveis

Estou tentando exibir o progresso do download nas células da minha coleção. Atualmente, estou usando o bloco de progresso da análise, que possui uma instância da célula e atualiza a barra de progresso.

}, 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
    }
}
})

Portanto, isso funciona bem, o problema que tenho agora é que, se eu deixar esse controlador de exibição, voltar para ver como os downloads estão indo, a instância da célula foi reutilizada e nenhum dos elementos desejados da interface do usuário está visível, mas o progresso ainda está correndo afastado em segundo plano.

O único lugar em que posso pensar em exibir novamente os elementos da interface do usuário é em cellForItemAt. O problema é que o progresso não é atualizado, apenas mostra o valor no momento em que a célula foi recarregada.

Como posso reutilizar a instância da célula que o bloco de progresso está usando ou exibir claramente os elementos da interface do usuário que continuam atualizando?

questionAnswers(1)

yourAnswerToTheQuestion