最初は、すべてのセルにデフォルト画像を設定できます。その後、コールバックデリゲートを使用して、必要なセルを更新して、イメージがロードされたらそれを保持することができます。私は現在、この非常に簡単に私のリモート画像処理のためにJMImageCacheを使用しています。
まず、JMImageCache.hファイルとJMImageCache.mファイルをプロジェクトに追加します。 imageViewerという名前のImageViewerでイメージを保持するCustomCellというテーブル用のカスタムセルを使用していると仮定して、CustomCell.hでJMImageCache.hファイルをインポートします。また、それJMImageCacheDelegate作るのNSString IMAGE_URLフィールドを追加するにはCustomCellインターフェイスを更新します。私たちは、その後、細胞の画像が更新されるように画像のダウンロードが終了したときに処理する必要が
@interface CustomCell : UITableViewCell <JMImageCacheDelegate>
{
NSString *image_url;
...
}
// Also set image_url property fields so that it can be accessed from other files
。 image_urlを合成し、CustomCell.mに以下を追加します。
- (void) cache:(JMImageCache *)c didDownloadImage:(UIImage *)i forURL:(NSString *)url
{
if ([url isEqualToString:image_url]) {
[self.imageViewer setImage:i];
[self setNeedsLayout];
}
}
は、次にインデックスパス機能で行のためのセルであなたのtableViewを持つファイルに:あなたはより多くの支援が必要な場合
CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (CustomCell *)currentObject;
break;
}
}
}
[cell.imageViewer setImage:[UIImage imageNamed:"default.png"]];
//Code for getting string of URL you want for current cell called 'cell_image'
[cell setImage_url:cell_image];
[cell.imageViewer setImage:[[JMImageCache sharedCache] imageForURL:image_url delegate:cell]];
JMImageCacheはgithubの上の簡単な例があります。
デフォルトの画像を追加するだけでなく、他の画像がダウンロードされたときに上に描画するのはなぜですか? – ader