9

プレースホルダー画像を使用してAFNetworkingからの遅延読み込みを使用して画像を表示するテーブルビューがあります。プレースホルダーが読み込まれたときに、プレースホルダーから画像にフェードする方法を実現しようとしています。ここでの私のコードは機能しますが、テーブルのスクロール中に画像が読み込まれると、すべてが奇妙に見え、テーブルのスクロールが停止します。同じことが水平スクローラーにも起こり、同じ効果があります。

これがcellForRowAtIndexPath内で使用しているコードです

    [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){

                           }
 ];

画像がキャッシュに入るとアニメーションを回避するためにif(request)を使用しています。

よろしくお願いします。

4

1 に答える 1

14

self.viewの代わりにこのcell.hotelImageを試してくださいこれは機能します:)

 [UIView transitionWithView:cell.hotelImage
   duration:1.0f
   options:UIViewAnimationOptionTransitionCrossDissolve
   animations:^{[cell.hotelImage setImage:image];} 
 completion:NULL];
于 2012-12-24T23:30:26.873 に答える