我有一个UITableView
,我用这种方式填写:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyData *myData = [arrayData objectAtIndex:indexPath.row];
MyTableViewCell *cell = [[MyTableViewCell alloc] init:myData.title
:myData.url];
return cell;
}
UIImageView
中有一个MyTableViewCell
,我按照这样加载:
- (id) init : (NSString *) parTitle : (NSString *) parUrl {
// ...
[self load:parUrl];
// ...
}
- (void) load : (NSString *) url {
NSURL *myURL = [NSURL URLWithString:url];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
image = [[UIImageView alloc] initWithFrame:CGRectMake(0, 18, 70, 65)];
NSData *imageData = [NSData dataWithContentsOfURL:myURL];
dispatch_async(dispatch_get_main_queue(), ^{
// Update the UI
[image setImage:[UIImage imageWithData:imageData]];
image.contentMode = UIViewContentModeScaleAspectFit;
[self.contentView addSubview:image];
[self reloadInputViews];
});
});
}
问题在于,每当一个单元格从屏幕上消失时,它会在我向后滚动时重新加载其内容,但我不想要它。该怎么办?谢谢你的帮助。
答案 0 :(得分:1)
您只需要一个更复杂的解决方案。将下载的图像存储在模型中并预先检查,如果图像已经下载,则不要再次下载。
答案 1 :(得分:1)