как только вы загрузили изображение (асинхронное), вам нужно проверить, действительно ли ваша ячейка связана с этим изображением.
например.ячейка может быть повторно использована для другого indexPath, поэтому загруженное изображение больше не является правильным.
Я добавил index
(indexPath.row), чтобы загрузить закрытие завершения, чтобы вы могли проверить, равен ли cell.tag индексу
downloadManager.download(index: indexPath.row) { (image, index) in
if cell.tag == index {
cell.imageView.image = image
}
}