缓存图像,因此它不会在reloadData调用上重新加载 - AFNetworking 2.0 setImageWithUrl

时间:2015-04-08 16:03:20

标签: ios objective-c uitableview afnetworking-2

围绕此主题有关于堆栈溢出的一些问题,但我无法找到解决方案。

我的tableview中的每个tableview单元格都有一个从网址加载的imageview。

图像加载正常,但每当我调用reloadData时,图像会再次加载,从而产生闪烁效果。在cellForRowAtIndexPath中,我将prepareForReuse中的图像设置为空白图像,因此它也在这里闪烁。

我知道我需要缓存图片,但我该怎么做呢?我是否需要存储自己的缓存图像并在基础数据更改时更新? AFNetworking是否默认提供此功能?

我已尝试过NSURLRequestReturnCacheDataElseLoad - 它似乎无法正常工作。

[cell.recipientProfilePic setImageWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[user.photos objectAtIndex:0]] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:2300] placeholderImage:[UIImage imageNamed:@"blank_image_load"] 
  success:nil
  failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
}];

1 个答案:

答案 0 :(得分:0)

使用此工具,您可以使用Cocoapods安装它:

https://github.com/rs/SDWebImage

它通过带有UIImageView Enjoy的网址处理sd_imageWithURL:的缓存和加载图片。