1

セル内のテーブルビューと画像に問題があります。画像をロードするには、次のコードで AFNetworking を使用します。

    [celle.thumb setImageWithURLRequest:[NSURLRequest requestWithURL:MYIMGLINK]
                       placeholderImage:[UIImage imageNamed:@"Placeholder.png"]
                                success:^(NSURLRequest *request , NSHTTPURLResponse *response , UIImage *image ){

                                    if (request) {
                                        //Fade animation
                                        [UIView transitionWithView:celle.thumb
                                                          duration:0.8f
                                                           options:UIViewAnimationOptionTransitionCrossDissolve
                                                        animations:^{
                                                                [celle.thumb setImage:image];



                                                        } completion:NULL];

                                    }


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

                                }
     ];

このコードは期待どおりに機能し、テーブルビューは次のようになります

しかし今、下にスクロールしてもう一度上にスクロールすると、すべての画像が混在しています。彼らは場所を交換したか、私にはよくわかりません。そして、この問題を解決する方法がわかりません。上下にスクロールするとこんな感じ

あなたが私を助けてくれることをとても嬉しく思います。

4

2 に答える 2

2

問題は、おそらくメソッドdequeueReusableCellWithIdentifierでセルを作成するために使用しているcellForRowAtIndexPathことです。これは、新しいセルを画面に表示する必要がある場合 (スクロールするときなど)、以前に表示されていた古いセルが新しいセルとして使用されることを意味します。

メソッドでセル内のすべてを明示的に設定する限り、これは問題になりませんcellForRowAtIndexPath。設定しているように見えますがplaceholderImage、機能していない可能性があります。を実行する前に、画像行を設定するかもしれませんsetImageWithURLRequest

于 2013-05-10T16:16:57.157 に答える
0

同様の問題がありました.iOSが既存のセルを再利用することに関係しています。したがって、次のように nil に設定するだけです。

celle.thumb.image = nil;

コード ブロックは次のようになります。

celle.thumb.image = nil;

[celle.thumb setImageWithURLRequest:[NSURLRequest requestWithURL:MYIMGLINK]
                       placeholderImage:[UIImage imageNamed:@"Placeholder.png"]
                                success:^(NSURLRequest *request , NSHTTPURLResponse *response , UIImage *image ){

                                if (request) {
                                    //Fade animation
                                    [UIView transitionWithView:celle.thumb
                                                      duration:0.8f
                                                       options:UIViewAnimationOptionTransitionCrossDissolve
                                                    animations:^{
                                                            [celle.thumb setImage:image];



                                                    } completion:NULL];

                                }


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

                            }
 ];
于 2013-12-16T21:06:31.963 に答える