私は現在、UITableViewに大きな画像を表示する必要があるプロジェクトに取り組んでいます。これは多くの開発者にとって非常に一般的な問題であり、次の手順に到達したスレッドで学習します。
注:私が参照する大きな画像は、すべて300x300px(600x600px、網膜)と約200kbのJPEGを持っています
- NSOperationQueue を作成します。
- 画像を非同期的にダウンロードします (各画像は 600x600px で、@2x 画像に対応します);
- 非網膜画像 (300x300px 画像) のサイズを変更して作成します。
- 両方の画像を解凍します。
- すべての画像を NSCache に保存します。
すべての手順が完了したら、メイン スレッドで UITableView を更新します。UITableViewCell サブクラスを使用して、必要なすべてのコンテンツを描画しています (Apple のサンプル コードで見られるように)。主な問題は、ステップ 4 について混乱していることです(画像を解凍する)、私の疑問:
注:現在、解凍した画像を NSCache に保存しています。
- 画像を解凍して、UIImage または NSData として保存する必要がありますか?
- 解凍した画像を保存するにはどうすればよいですか?(NSCache、NSMutableArray...)
- 解凍した画像を UITableViewCell サブクラスに渡す最良の方法は何ですか?
注: ここに示す解凍コードを使用しています:リンク