2017-07-07 1 views
2

J'ai un problème avec le chargement de 5 images à chaque cellule de TableView. J'utilise AFNetworking pour la méthode de téléchargement et setImageWithUrl pour imageView:Async charger plusieurs images à cellule unique

for (int i = 0; i < urls.count; i++) { 
    [self.photoImageView[i] setImageWithURL:urls[i]]; 
} 

TableView freins où je défiler. Mais quand j'essaie de charger 1 ou 2 pas de freins lors du défilement. enter image description here Comment corriger le téléchargement d'images sans freins?

+0

image sans pauses? –

+0

Essayez de définir 'tableView.separatorStyle = UITableViewCellSeparatorStyleNone;' –

+0

cela cause une taille d'image plus grande donc essayez de le réduire. –

Répondre

2

Je pense que c'est utile pour vous sous le code de travail pour moi.

Première chute, vous utilisez cette bibliothèque SDWebImage puis mettre en œuvre le code ci-dessous.

#import <SDWebImage/UIImageView+WebCache.h> 
... 
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"URL"] 
      placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
1

Vous pouvez utiliser SDWebImage comme indiqué par @Ravi. Vous pouvez utiliser le code ci-dessus dans votre boucle for pour afficher les 5 images de manière asynchrone, sans bloquer le thread principal.

for (int i = 0; i < urls.count; i++) { 
[self.photoImageView[i] sd_setImageWithURL:[NSURL URLWithString:urls[i]] 
     placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
} 

Si vous ne voulez pas utiliser de bibliothèques tierces, vous pouvez également utiliser GCD pour cela. Cochez cette case ans.

Espérons que ça aide. Codage heureux !!

0

Si vous voyez UIImage + classe AFNetworking, Il charge en interne l'image en utilisant NSOperations Async.Essayez de charger l'image avec des dimensions spécifiques.Il va télécharger l'image de cette taille & pourrait améliorer les performances de défilement.

NSMutableString *newURLPath = [NSMutableString stringWithString[exercise.imageURL absoluteString]]; 
[newURLPath appendFormat:@"?width=200&"]; 
[newURLPath appendFormat:@"height=200"]; 
1

For downloading the Asynchronous image from url, use any of these library for improving the scroll performance

SDWebImage - téléchargeur image asynchrone avec prise en charge du cache en tant que catégorie de UIImageView.

#import <SDWebImage/UIImageView+WebCache.h> 
... 
[imageView sd_setImageWithURL:URL 
      placeholderImage:[UIImage imageNamed:@"placeholder.png"] 
]; 

PINRemoteImage - Il télécharger un fichier JPEG progressif et obtenir des mises à jour attrayantes floues.

Pour votre cas, vous pouvez opter pour SDWebImage.

For Advance Concept, you could look into this one. 

AsyncDisplayKit - interfaces utilisateur asynchrones lisses pour applications iOS

Même récemment, Pinterest a été construit au-dessus de AsyncDisplayKit à Conserve UIs lisse et souple. Lisez cet article pour plus d'informations: https://medium.com/@Pinterest_Engineering/re-architecting-pinterest-039-s-ios-app-e0a2d34a6ac2