グリッド ビューをサポートするのに最適なGMGridViewを使用しています。しかし、セルをデキューする方法に関して問題が発生しています。
アプリの背景情報: 特定の「カテゴリ」に属する製品のグリッド ビューを表示する「ProductsGVC」という名前のクラスがあります。ProductsGVC のデータ モデルは、'Category' のインスタンスから取得した製品の配列です。
私の GMGridView は一度に 250 個のセルを作成します。各セルをロードすると、各セルの画像をダウンロードするスレッドがあります。ダウンロードが完了するのを待っている間、セルの画像ビューにデフォルトの画像を配置しました。論理的には、セルをダウンロードした後、セルをリロードして写真を更新したいと考えています。私はこのコードを使用してこれを行うことに成功しています:
//_currentData is my array of products
[_gmGridView reloadObjectAtIndex:[_currentData indexOfObject:product] animated:YES];
ただし、配列の下部にあるセルが更新されると、セルは適切に更新されますが、1 つのセルが消えます。
私の非効率的な解決策は[_gmGridView reloadData]
、セルがイメージのダウンロードを終了するたびに呼び出すことです。その結果、以前にロードしたセルが消えます。私はそれらがデキューされ、再利用されたと推測しています。まあ、消えたセルから何度もスクロールすると、それらは再び表示されます。
私の質問は、表示されているセル (つまり、現在画面に表示されているセル) のデキューを防ぐにはどうすればよいですか?