0

グリッド ビューをサポートするのに最適なGMGridViewを使用しています。しかし、セルをデキューする方法に関して問題が発生しています。

アプリの背景情報: 特定の「カテゴリ」に属する製品のグリッド ビューを表示する「ProductsGVC」という名前のクラスがあります。ProductsGVC のデータ モデルは、'Category' のインスタンスから取得した製品の配列です。

私の GMGridView は一度に 250 個のセルを作成します。各セルをロードすると、各セルの画像をダウンロードするスレッドがあります。ダウンロードが完了するのを待っている間、セルの画像ビューにデフォルトの画像を配置しました。論理的には、セルをダウンロードした後、セルをリロードして写真を更新したいと考えています。私はこのコードを使用してこれを行うことに成功しています:

//_currentData is my array of products
[_gmGridView reloadObjectAtIndex:[_currentData  indexOfObject:product] animated:YES];

ただし、配列の下部にあるセルが更新されると、セルは適切に更新されますが、1 つのセルが消えます。

私の非効率的な解決策は[_gmGridView reloadData]、セルがイメージのダウンロードを終了するたびに呼び出すことです。その結果、以前にロードしたセルが消えます。私はそれらがデキューされ、再利用されたと推測しています。まあ、消えたセルから何度もスクロールすると、それらは再び表示されます。

私の質問は、表示されているセル (つまり、現在画面に表示されているセル) のデキューを防ぐにはどうすればよいですか?

4

1 に答える 1

1

NSFetchResultsController を使用している場合は、 https: //github.com/gmoledina/GMGridView/issues/84 にある Rasmuth の回答を実装してみてください。

于 2012-10-01T02:44:39.727 に答える