2016-04-19 15 views
0

私のiOSアプリケーションでは、JSONファイルを読み込み、内容を含む表を作成しようとしています。以下はJSONファイルのサンプルです。リモートJSONの読み取りとURLからの画像の取得

現在、私はJSONを "items"という可変配列に読み込んで、このような表のセルに値を設定しています。

// Populate the cell 
if let showName = self.items[indexPath.row]["Show"] as? NSString { 
      cell.textLabel!.text = showName as! String 

各JSONレコードの画像をセルにも表示したいと思います

私は画像のURLを持っていますが、どのようにしてテーブルのセルに入れるのですか?

私のアプローチはすべて間違っている可能性がありますので、正しい方向を指摘していただければ幸いです。

{ 
     "shows": [{ 
       "Day": "Sunday", 
       "Time": "12am", 
       "Show": “Show Name Here", 
       "imgPath": "http://remoteserver/image.jpg" 
     }, { 
       "Day": "Sunday", 
       "Time": "1am", 
       "Show": "Show Name Here", 
       "imgPath": “http://remoteserver/image.jpg" 

     }, { 
       "Day": "Sunday", 
       "Time": "2am", 
       "Show": "Show Name Here", 
       "imgPath": http://remoteserver/image.jpg" 

     } 
+0

[URLからUITableViewCellに画像を読み込む方法]の複製がありますか?(http://stackoverflow.com/questions/13303008/how-to-load-a-image-from-url-to-uitableviewcell) – Daniel

+0

さて、何を試しましたか? URLでイメージをダウンロードし、完了ブロック(ダウンロードが完了した後)でイメージプレースホルダーをダウンロードしたイメージで更新する必要があります。ちょうどそれのための普及したフレームワークがあります:[SDWebImage](https://github.com/rs/SDWebImage) – dirkgroten

+0

私はtableView機能で次を試しました。イメージをロードしますが、イメージを保持していないエントリ(またはセル)にイメージをロードします。 if imgPath = self.items [indexPath.row] ["imgPath"] as?私は私の以前のコードと認識 – Darin

答えて

1

私はこのためにSDWebImageのようなライブラリを使用することをお勧めします。これにより、画像を非同期的に画像ビューに読み込むメソッドが提供され、画像のダウンロード中にプレースホルダを設定できるようになります。 あなたは(SDWebImageドキュメントからコピーされた)このようなURLから画像を設定することができます:ここ

[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] 
        placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

さらに詳しい情報:https://github.com/rs/SDWebImage

+0

また、テーブルビューにイメージの束がある場合、パフォーマンスを大幅に向上させるキャッシュを実行します。スクロール中に同じ画像に対して新しい非同期要求が発生することはありません。 – NSGangster

+0

ありがとうございます。私はこの図書館を調べます。私はそれを以前使用していません。 – Darin

+0

SDWebImageは私の人生を一度保存​​しました。 – NSGangster

0

Appleは、この使用してRSSのためのサンプルプロジェクトを持っています。 LazyTableImagesこのコードは迅速ではありませんが、リンゴの処理方法を正確に示します。

セルが再利用されていて、イメージが消去されていないか、再利用されたセルに追加されているような問題が発生しています。

+0

ありがとうJaybit。それは起こっているように見えます。私はこの例を見ていきます。 – Darin

関連する問題