tableView:cellForRowAtIndexPath
呼び出して画像を設定する実験をしています
[self downloadImage:urlString andSetIntoCellImageView:cell]
でdownloadImage
、それが呼び出されNSURLConnection:sendAsynchronousRequest
(iOS 5 以降のみ)、完了ブロックで、を使用して画像を設定します
cell.imageView.image = [UIImage imageWithData:data]; // data is downloaded data
で、ダミーのプレースホルダー画像が取り込まれている場合に機能します-そして、新しい画像がどのように更新されるのだろうか、再描画を行うことtableView:cellForRowAtIndexPath
によってですか? しかし、プレースホルダー画像を設定しないと、新しい画像はまったく表示されません。画像を表示するには、どのようなメカニズムを使用できるのだろうか。imageView
setNeedsDisplay
私が使用する場合
[cell.imageView setNeedsDisplay]
また
[cell setNeedsDisplay];
完了ブロックでは機能しません。
[self.table reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationAutomatic];
downloadImage
を受け入れて完了ブロックで、再度indexPath
呼び出しtableView:cellForRowAtIndexPath
、無限ループを引き起こします。そのため、画像が既にハッシュ テーブルにあるかどうかを覚えておくために、ハッシュ テーブルを使用する必要があるようdownloadImage
です。
しかし、画像を表示させる簡単な方法はありますか? プレースホルダー画像の設定は機能しますが、そうでない場合はどうなりますか? プレースホルダーが画像の更新を引き起こすメカニズムは何ですか?