我有一个UITableView
,使用AFNetworking
为表格中的每个单元格异步下载图像。
下载使用过渡以获得流畅的外观和感觉,除了一个小错误之外,一切都很有效:
当我快速向下滚动时,似乎每个图像都会开始一个新的下载,所以当我停止滚动时,每个单元格会闪烁几秒钟,显示所有“分配”的图像,直到它会以正确的图像(最新的图像)停止。
如果记录不再与单元格相关或确保显示的图像对于单元格是正确的,是否有办法停止下载?
答案 0 :(得分:0)
您可以将图像保存到字典中,其中键是单元格的索引路径。因此,当您滚动它时,检查该键是否存在于字典中并显示图像。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//Cell creation
//Other cell operations
NSArrary *keys = [dictImage allKeys]
if([keys containsObject:[NSString stringWithFormat:@"%@",indexPath.row]]){
cell.imageView.image = [dictImage objectForKey:[NSString stringWithFormat:@"%@",indexPath.row]];
}
else{
//Download the image
//When download finishes save the image into dictionary
//Alloc init the dictImage in viewDidLoad
//Remove the objects of dictImage when reloading with new images
[dictImage objectForKey:[NSString stringWithFormat:@"%@",indexPath.row]];
}
}