2012-01-06 16 views
7

Uso la biblioteca de descarga de imágenes/caché SDWebImage prácticamente en cualquier momento que visualizo una imagen en una vista de tabla.Cómo usar SDWebImage sin ningún caché para una instancia

Normalmente lo implementaría como tal (en una vista de tabla cellForRowAtIndexPath método).

[cell.imageView setImageWithURL: 
[NSURL URLWithString:@"http://asite.com/animage.jpg"] 
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];   

Y eso cargaría una versión en caché si tuviera una.

¿Qué tal si quisiera utilizar la simplicidad de SDWebImage (con el marcador de posición/código de descarga robusto) - pero sin el caché en un solo lugar.

Sé cómo desactivar el almacenamiento en caché a través de SDWebImage, pero no sé cómo llamaría al setImageWithUrl: placeholderImage: para asegurarse de que SDWebImage no utiliza ningún caché?

La razón por la que quiero hacer esto es que la estoy usando para mostrar cámaras web en una vista de tabla (obviamente, quiere que esto se actualice todas las veces).

Respuesta

6

Recomiendo alejarse de la Categoría en UIImageView y crear su propia versión de SDWebImageManager. Obtendrá más control si usa la clase SDImageCache usted mismo.

Heres y el ejemplo de la derecha SDWebImageManager sí:

[[SDImageCache sharedImageCache] storeImage:image 
            imageData:downloader.imageData 
            forKey:[downloader.url absoluteString] 
            toDisk:NO]; 

toDisk es probablemente donde he cambiado el BOOL en NO, el gestor por defecto utiliza el almacenamiento en caché de disco. Usted también puede querer borrar la memoria de vez en cuando para apoyar sus flujos de imágenes:

[[SDImageCache sharedImageCache] clearMemory]; 

El código SDWebImageManager es fácil de seguir y me imagino que no tendrá que volver a inventar la mayor parte, sólo unas pocas porciones importantes para satisfacer sus necesidades.

3

Aquí tienes. Asegúrese de obtener la última versión del SDWebImage:

[anImageView setImageWithURL:[NSURL URLWithString:@"http://asite.com/animage.jpg"] 
      placeholderImage:[UIImage imageNamed:@"placeholder.png"] 
        options:SDWebImageCacheMemoryOnly]; 

De SDWebImageManager.h:

/** 
* This flag disables on-disk caching 
*/ 
SDWebImageCacheMemoryOnly = 1 << 2, 
0

sólo tiene que utilizar la propiedad de shouldCacheImagesInMemorySDImageCache y ponerlo a NO. Esta función está disponible en 3.7.4+.

0

Puede usar SDWebImageDownloader. No almacena datos en caché.

Cuestiones relacionadas