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