2013-02-13 1 views
0

Je souhaite charger plusieurs images du service Web JSON dans mon application. Ces images servent de vignettes à un «magasin» dans mon application. Ainsi, lorsque l'utilisateur clique sur un bouton pour accéder au "Store", une demande est en cours. Et cette demande est répétée chaque fois que l'utilisateur clique sur le bouton.Chargement de plusieurs images à partir du service Web plus rapidement

Maintenant, il n'y a pas de problème, mais le problème se pose lorsque les données dans JSON se multiplient en quantité. Avant, nous ne chargeons que 5 images. Maintenant, nous chargeons au moins 18 images. Ceux-ci pourraient poser un réel problème lorsque les images se multiplieraient à 100 ou plus.

J'envisage d'utiliser NSURLCache pour mettre en cache les images, mais comment saurai-je s'il y a une mise à jour des images? Dites qu'une nouvelle image est ajoutée ou que l'image actuelle n'est plus utilisée? Quelqu'un peut-il me donner des idées sur quelle est la meilleure façon d'aborder cela?

Répondre

1

Vous pouvez charger plusieurs images de Webservices utilisant SDWebImage De https://github.com/rs/SDWebImage Lire comment l'utiliser dans intruction comme ci-dessous

  • vous devez d'abord faire un clic droit sur le nom de projet: -> ajouter des fichiers à YourProject -> SDWebImageproject sélectionnés et les ajouter

NOTE: - s'il vous plaît ne pas cocher l'option de copie

  • maintenant cliquer sur le nom du projet dans votre Xcode va construire phases: -> dépendances cibles: -> cliquez sur le bouton + et ajouter SDWebimage ARC

  • maintenant sélectionnez binaire lien avec clic + bouton Bibliothèque ajouter libSDWebimageARC.a et cliquez à nouveau sur + et ajouter imageIO.framework et ajoutez également thats libxml2.dylib il

  • va construire réglage: -> autre lien drapeau: -> ajouter -ObjC

  • et chemin de recherche d'en-tête ajouter ce produit trois

    1/usr/include/libxml2

    2 "$ (objRoot)/UninstalledProducts/include"

    3 "$ (TARGET_BUILD_DIR)/usr/local/lib/include"

vous peut impliment code comme ceci: - #import <SDWebImage/UIImageView+WebCache.h>

imageView = [[UIImageView alloc] init]; 


      UIActivityIndicatorView *activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease]; 
      activityIndicator.hidesWhenStopped = YES; 
      activityIndicator.hidden = NO; 
      [activityIndicator startAnimating]; 


      [imageView setImageWithURL:[NSURL URLWithString:strUrlSting] 
         placeholderImage:nil options:SDWebImageProgressiveDownload 
           success:^(UIImage *image) { [activityIndicator stopAnimating];[activityIndicator removeFromSuperview]; } 
           failure:^(NSError *error) { [activityIndicator stopAnimating];[activityIndicator removeFromSuperview]; }]; 

      [imageView addSubview:activityIndicator]; 


      imageView.contentMode = UIViewContentModeScaleAspectFit; 
      imageView.clipsToBounds = YES; 
      imageView.tag = 1; 
      imageView.backgroundColor = [UIColor blackColor]; 

maintenant construire et exécuter son travail comme en douceur .... :) acclamations

+0

Merci pour cela! Je vais d'abord étudier cela et voir si cela va m'aider. –

+0

ok c'est très simple, vous pouvez implémenter dans votre projet en lire comment utiliser à https://github.com/rs/SDWebImage et suivez l'étape comme dit –

Questions connexes