0

Quel est le meilleur moyen de réessayer un téléchargement d'image échoué dans cellForItemAtIndexPath? J'ai une vue de collection qui peut montrer environ 20 images miniatures de 80x80. J'utilise SDWebImage pour télécharger et mettre en cache des images dans la méthode cellForItemAtIndexPath, mais j'ai constaté que parfois une image ne peut pas être téléchargée. Je sais que je peux utiliser un bloc d'achèvement et tester si l'image est nulle, mais il ne semble pas recharger correctement l'image (l'image ne s'affiche toujours pas). Est-ce ainsi que je devrais gérer le rechargement de la cellule? Voici un exemple de mon code.Recharger UICollectionViewCell depuis cellForItemAtIndexPath

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    NSURL *thumbnailURL = [NSURL URLWithString:url]; 

    INCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; 

    [cell.imageView setImageWithURL:thumbnailURL completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) { 
     if (!image) { 
      [self.collectionView reloadItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]]; 
     } 
    }]; 

    return cell; 
} 

Répondre

0

obtenu une réponse sur github

Vous devez utiliser l'une des méthodes avec un paramètre "options" et spécifier SDWebImageRetryFailed comme si ...

[cell.imageView setImageWithURL : thumbnailURL placeholderImage: [UIImage imageNamed: @ "placeholder.png"] options: SDWebImageRetryFailed terminé:^(image UIImage *, erreur NSError *, SDImageCacheType cacheType) { ...}];

Questions connexes