Voici le code. C'est dans ma classe UICollectionViewDataSource
.collectionview ne télécharge qu'une image dans cellForItemAtIndexPath
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let identifier = "UICollectionViewCell"
let photo = photos[indexPath.row]
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as! PhotoCollectionViewCell
let url = ImageUploaderAPI.urlForPhotoPath(photoTitle: photo.remoteURL)
if (photo.image == nil) {
Alamofire.download(url).downloadProgress { progress in
print("Download Progress: \(progress.fractionCompleted)")
}
.responseData { response in
if let data = response.result.value {
let image = UIImage(data: data)
photo.image = image!
cell.updateWithImage(image: image)
print("Downloaded: " + url.absoluteString)
collectionView.reloadData()
}
}
} else {
cell.updateWithImage(image: photo.image)
}
return cell
}
Le progress.fractionCompleted
montre que les images sont en cours de téléchargement, mais je ne sais pas pourquoi aucune des images sont mises à jour. Est-ce à cause de comment Alamofire fonctionne de manière asynchrone? Tout avis sera le bienvenu.
Hey, merci pour la réponse complète. Je me rends compte maintenant qu'une seule image est en train d'être téléchargée, alors que le reste semble juste être téléchargé mais le callback 'responseData' n'est jamais appelé. Des idées? –