0

コレクションビューがあります。cellForRow メソッドで、collectionViewCell にオブジェクトを設定しました。そのオブジェクトのセッターは、オブジェクトの画像 URL を取得し、AFNetworking を使用して画像を非同期でダウンロードします。(セッターはカスタムセルサブクラスにあります)

ただし、新しい画像をダウンロードしてデータを再読み込みすると、適切な画像を読み込むために下にスクロールする必要があります...そして、画像がセルを変更したり複製したりすることがあります(ただし、オブジェクトのタイトルが期待されるもの。

何が起こっている?

4

2 に答える 2

2

セルをリロード (または下にスクロール) せずに画像を入れ替えたい場合は、次のように呼び出す必要があります。

[self.imageView setImageWithURL:<#some url#> placeholderImage:<#placeholder image same size as imageview#>];

AFNetworking は画像のキャッシュを処理するため、cellForRow が呼び出されるたびに同じセッターを安全に呼び出すことができます (異なるセルでの画像の再利用を避けるため)。

注意: プレースホルダー画像は imageView と同じサイズであることが重要です - 画像が交換されます。

于 2013-06-16T08:03:24.650 に答える
0

これは主に、セルがコレクションビューで再利用されているためだと思います。imageカスタムセルのプロパティをnil直後に設定してみてくださいdequeueReusableCellWithReuseIdentifier:

于 2013-06-16T06:20:54.690 に答える