通常我们在Cell nil的条件之外配置Cell。在我的情况下,我做的是将NSData转换为Cell nil之外的图像。因此,每次我触发请求并重新加载表时,它都会将数据转换为特定单元格的图像。但是在重新加载表之后,我的问题是当我滚动表时,每次它都会将NSData转换为显而易见的图像。重新加载表格后,我需要在滚动时避免这种转换。
static NSString *CellIdentifierImage = @"CellIdentifierImage";
if(indexPath.section == 0)
{
NewsImageCell *newsImageCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierImage];
if (newsImageCell == nil)
{
NSLog(@"CellNil");
newsImageCell = [[NewsImageCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifierImage];
newsImageCell.selectionStyle = UITableViewCellSelectionStyleNone;
}
if([[ApplicationData sharedInstance].arrTop10NewsHome count]>0)
{
NSMutableDictionary *dicSource = [arrSource objectAtIndex:indexPath.row];
NSURL *urlImage = [NSURL URLWithString:[dicSource retrieveForPath:@"ItemImage"]];
newsImageCell.lblNewsHeading.text = [dicSource objectForKey:@"Title"];
[newsImageCell.loadingIndicator startAnimating];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:urlImage]];
dispatch_sync(dispatch_get_main_queue(), ^{
newsImageCell.imgVwNews.image = image;
[newsImageCell.loadingIndicator stopAnimating];
});
});
}
return newsImageCell;
}
欣赏您的想法 提前致谢 !!!
答案 0 :(得分:0)
使用EGOImageView代替UIImageView。
的演示项目答案 1 :(得分:0)
您可以使用HJCache https://github.com/markofjohnson/HJCache 哪种情况最适合这种情况。