2012-12-20 6 views
9

Ich habe eine Tabellenansicht, die Bilder mit Lazy Loading von AFNetworking mit einem Platzhalterbild anzeigt. Ich versuche eine Möglichkeit zu finden, vom Platzhalter zum Bild zu wechseln, wenn es geladen ist. Mein Code funktioniert hier, aber wenn ein Bild beim Scrollen der Tabelle geladen wird, sieht alles seltsam aus und die Tabelle hört auf zu scrollen. Das Gleiche passiert mit einem horizontalen Scroller mit dem gleichen Effekt.AFNetworking - Fade-Animation im Bild beim Scrollen UITableView

Hier ist der Code, den ich innerhalb cellForRowAtIndexPath bin mit

[cell.hotelImage setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:hotelImageUrl]] 
        placeholderImage:[UIImage imageNamed:@"placeholder.png"] 
          success:^(NSURLRequest *request , NSHTTPURLResponse *response , UIImage *image){ 

           if (request) { 
            //Fade animation 
            [UIView transitionWithView:self.view 
                duration:1.0f 
                 options:UIViewAnimationOptionTransitionCrossDissolve 
                animations:^{ 
                 [cell.hotelImage setImage:image]; 
                } completion:NULL]; 

           } 


          } 
          failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){ 

          } 
]; 

Ich bin mit dem if (Anfrage), um die Animation zu vermeiden, wenn das Bild im Cache ist.

Vielen Dank im Voraus.

Antwort

14

statt self.view versuchen, diese cell.hotelImage dies funktionieren wird :)

[UIView transitionWithView:cell.hotelImage 
    duration:1.0f 
    options:UIViewAnimationOptionTransitionCrossDissolve 
    animations:^{[cell.hotelImage setImage:image];} 
completion:NULL]; 
+0

super funktioniert. Vielen Dank! – Chompas

Verwandte Themen