0

カスタムUITableViewCellでUITableViewを実装しています。画像を表示するための UIImageView があります。しかし、私が与えられたAPIには、各UITableViewCellに表示する必要がある画像のダウンロードリンクが含まれていません. 画像を取得するには、対応するセルに表示される画像のバイト配列ストリームを返す別の GET リクエストを呼び出す必要があります。

私は、API からの NSData から画像を作成できることを知っています。しかし、それがどれほど効率的なアイデアになるかはわかりません。メモリとパフォーマンスの問題が心配です。また、UITableViewCell での非同期読み込みと画像キャッシュも実行して、後の呼び出しにかかる時間を短縮したいと考えています。では、ここで効率的なアプローチとは何でしょうか? また、これを行うのに役立つ優れたライブラリについての提案も素晴らしいでしょう。

4

2 に答える 2

0

おそらくテーブルビューコントローラーまたはモデルで、自分で画像をダウンロードする必要があります。メモリ容量を節約するために、画像のサイズを変更できます。帯域幅を節約するために、これはサーバー側で行うのが理想的です。ただし、ダウンロード後にサイズを変更することもできます。Retina デバイスと非 Retina デバイスでは、画像のサイズ変更のニーズが異なることに注意してください。

いずれにせよ、サイズ変更された画像を他のセル データと共にキャッシュし、NSData を破棄します。reloadRowsAtIndexPaths:withRowAnimation:その後、UITableviewを呼び出してセルを更新できます。

イメージを含む行が多数ある場合は、イメージをディスクに書き込んでメモリを解放できます。ただし、一般的には、テーブルをスムーズにスクロールし続けるために、セル データをロードするためにディスクをヒットしないようにすることをお勧めします。パフォーマンスを維持するには、テーブルのスクロール位置に基づいて、必要な画像を予測し、ダンプ画像をインテリジェントにロードします。スクロールのパフォーマンスに影響を与えないようにするには、別のスレッドでロードを行う必要があります。

于 2013-07-26T06:35:30.390 に答える