2012-01-31 9 views
0

画像のロードに関するご質問はtableviewsです。画像を非同期的にテーブルビューにロードする

私はASIHTTPRequestを使用しています。

1.)私はtableviewを持っており、私はそれに画像をロードする必要があります。私は100KB、180KB、450KB、2MBのサイズの画像を持っています。私はこれらのイメージが大きすぎることを知っていますが、私はこれを支配しません。これらのイメージをテーブルビューに読み込まなければなりません。私がこれをすると、スクロールが遅くなり、ビューからビューへの切り替えが遅くなります。だから私はこれを防ぐことができますか?任意のソリューションですか?

2)現在はSDWebImageを使用していますが、スクロールが遅くなるなどの理由でこのライブラリに満足できません。(110kb未満の画像を使用しても)高速な動作を実行できるライブラリが必要ですか?

答えて

1

イメージを表示する前に、イメージをバックグラウンドでイメージビューサイズにダウンサンプリングしなければならないことがあります。間違いなく多くのCPUサイクルを先行して費やすことになりますが、スクロールのスピードアップにつながります。私はImageIOフレームワークを推奨します。なぜなら、非メインスレッドで動作する問題がないからです。

+0

これは最善のアプローチですか? ImageIOフレームワークを使用したサンプルプロジェクトへのリンクを投稿できますか? – Illep

+1

http://www.cocoabyss.com/coding-practice/uiimage-scaling-using-imageio/ –

+1

これはあなたの特定のケースでは最良のアプローチではないかもしれませんが、あなたがどれだけうまく機能するかを試してみるべきです:http://stackoverflow.com/questions/5860215/resizing-a-uimimage-withload-it-entirely-into-memory – Costique

0

私はそれがあなたのスクロールを遅くするSDWebImageだとは思わない。 SDWebImageは別のスレッドでイメージをダウンロードしますが、メインスレッドで実際に行うことはUIImageViewにイメージを配置することだけです。これはメインスレッドで行わなければなりません。私はいくつかの異なるUITableViewCellsでSDWebImageを使用し、スムーズなスクロールを実現することができました。

2mbは本当に大きいです - ジャークを見ずにその画像をUITableViewCellに読み込むことはできません。事実、UIImageViewがその画像をレンダリングするまでには時間がかかります。

私はあなたのアプリをTime Profilerで実行し、どのコード行がUITableViewまたはUITableViewCellsで実行するのに最も長い時間を費やしているかを調べることができます。

+0

はい、私はあなたの提案を試みます。 tableViewに表示する画像の最大サイズ(最高のオプション)を教えてください。 – Illep

+0

私はあなたに最大のサイズを伝えることができません、それを把握するために試行錯誤する必要があります。小さい方が良い! –

関連する問題