2016-09-23 9 views
0

一般的なプロセスの問題を解決するのに役立ちますか?多数のアバターをダウンロードして使用する

ユーザーがサインアップすると、サムネイルのアバター(約35x35ピクセル)が作成されます。私はこれをサーバーにアップロードします。

私のアプリの別のセクションでは、すべてのユーザーをUITableViewに表示します。このテーブルには、ビューコントローラで事前に発生している要求が設定されているため、画面の読み込みを減らすことができます。

この表には約100行が含まれています。私の質問は、どのようにシームレスにすべてのアバターをロードするのですか?

  • ユーザは、ビューをタップして多数のユーザーを見て、次にランダムに読み込んだアバターを表示したくありません。
  • 絶対に必要な(つまり、ユーザーがアプリ内をすばやくナビゲートする)限り、読み込み画面を表示しません。
  • 一度に100個のリクエストをサーバーに送信したくありません。

私は1つのリクエストを送信し、すべてを一度に戻したいと考えています。そして、私がこれをしたら、使用すべき特定のフォーマットがありますか?ベース64でエンコードされたサムネイルによる大きなJSONレスポンス:/

これに加えて、これらをキャッシュする必要がありますか?もしそうなら、どうですか?

スウィフト3.

ありがとう!

+2

SDWebImageまたはAFImageを使用すると、テーブルビューに表示されているユーザだけをダウンロードし、キャッシュして後で使用することができます – Tj3n

答えて

0

はPrathamメータの回答に基づいて、より多くの研究の後、私はをKingFisherと呼ばれるライブラリが見つかりました: これは私のプロジェクトのためのより適切であるhttps://github.com/onevcat/Kingfisher

は、与えられたSDWebImageは、Objective-Cで書かれているが、そして私のプロジェクトは、スウィフト3であります

0

SDWebImageは、このタスクを達成するために使用できる本当に素晴らしいフレームワークです。私はそれを私のすべてのアプリで使ってきました。

あなたはここでそれを見つけることができます:https://github.com/rs/SDWebImage

をあなたはここで指定したURLは、その特定に示される個々の画像へのリンクでごcellForRowAtIndexPath方法

cell.imageView.sd_setImageWithURL(String.initWithURL("http://www.domain.com/path/to/image.jpg")) 

を次のコードを置くことができます行。これにより、ユーザーがテーブルビューをスクロールするときにアプリが画像を読み込むことができます。あなたの画像が35x35であることを考えると、それは滑らかで速いはずです。

これが役に立った!

0

チェックアウトNuke。大規模な画像コレクションをサポートするように設計されています(スロットル機能、リクエストのレート制限などを内蔵しています)。

これを実行した場合、使用する特定の形式はありますか?ベース64でエンコードされたサムネイルによる大きなJSONレスポンス:/

私は早すぎる最適化を避けることをお勧めします。ディスプレイに表示されるとすぐに1枚ずつゆっくりと画像をダウンロードしてください。ほとんどの画像読み込みフレームワークはこれを本当にうまくサポートするように設計されています。

さらに、画像はprefetchです。

難しいやり方は - イメージを圧縮してアーカイブをダウンロードするだけです。

これに加えて、これらをキャッシュする必要がありますか?もしそうなら、どうですか?

thisが役に立ちました。