iOS SDWebImage Cross Fade Effect UITableViewCell

Así es como estoy utilizando con éxito SDWebImageManager para download las imágenes:

- (void) downloadThumbnails:(NSURL *) finalUrl { SDWebImageManager *manager = [SDWebImageManager shanetworkingManager]; [manager downloadWithURL:finalUrl options:0 progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) { if (image) { self.thumbnailURL = [finalUrl absoluteString]; } }]; } - (UIImage*)thumbnail { if (!self.thumbnailURL) return nil; return [[SDImageCache shanetworkingImageCache] imageFromDiskCacheForKey:self.thumbnailURL]; } 

¿Cómo puedo modificar para tener un efecto de transición gradual? El efecto Cross Fade es el que hace que la image muestre la transición lentamente al igual que la aplicación iOS TechCrunch. ¡Gracias!

ACTUALIZACIÓN: si puedo hacer cualquier otra cosa para tener efecto de transición gradual (que no sea SDWebImage) en la celda uitableview de lo que puede escribir en la respuesta.

ACTUALIZACIÓN: He recibido pocas respuestas después de mi última actualización y puedo resolver el problema parcialmente. Usando transitionWithView como en la respuesta a continuación, está funcionando y se desvanece a la manera que yo quiero, PERO como estoy usando un controller de table que está cargando más inputs cuando toca el background, actualiza todas las celdas una vez antes de que el nuevo bloque de inputs esté cargado, ¿cómo puedo evitar este comportamiento?

Parece que está utilizando SDWebImageManager en un file diferente que necesariamente no es la class UITableViewController. Puede usar transitionWithView pero no con SDWebImageManager directamente si está en una class diferente.

Pero en la class de controller de vista de tabla en la que está utilizando cellForRowAtIndexPath y enlazando la image con imageView de UITableViewCell, puede usar transitionView como a continuación:

 [UIView transitionWithView:cell.(Your Image View) duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ cell.(Your ImageView).image = [(how ever you are calling it)]; } completion:^(BOOL finished) { // Optionally you can do anything after the completion }]; 

¡Espero que esto ayude!

Puede utilizar UIView transitionWithView:duration:options:animations:completion: método para cruzar disolver la vista de la image de la image anterior a la nueva como esta:

 [UIView transitionWithView:imageView duration:0.4 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ // Set the new image // Since its done in the animation block, the change will be animated imageView.image = newImage; } completion:^(BOOL finished) { // Do whatever when the animation is finished }]; 

Simplemente use este código en su bloque completed donde normalmente configuraría la image en imageView

consulte la definición de la interfaz:

 - (id<SDWebImageOperation>)downloadWithURL:(NSURL *)url options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletedWithFinishedBlock)completedBlock; 

hay varios valores para SDImageOptions y creo que esto es lo que esperaba:

 /** * This flag enables progressive download, the image is displayed progressively during download as a browser would do. * By default, the image is only displayed once completely downloaded. */ SDWebImageProgressiveDownload = 1 << 3