使用AsyncImageView
班here。在文档中,他们说“默认情况下,所有加载的图像都被缓存”。您可以在文档的最后一段中看到它。
但问题是当我尝试再次加载图片时,它附带占位符并等待几秒钟再次从URL加载图像,即使它已经上次成功加载。
这意味着它没有被缓存,对吧?
那么问我的代码是否有问题?
为什么图像没有被缓存,就像使用SDWebImage
?
这些是我的代码:
AsyncImageView *imageView = [[AsyncImageView alloc] initWithFrame:CGRectMake(0, 0, productCellWidth, productCellHeight)];
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.clipsToBounds = YES;
NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:ProductPicture]];
[AsyncImageLoader defaultCache];
[[AsyncImageLoader sharedLoader]loadImageWithURL:URL target:self success:@selector(successSelector) failure:@selector(failureSelector)];
答案 0 :(得分:1)
我之前使用过另一个库,它运行良好 这个名为“SDWebImage”的库您可以通过以下方法使用它:
[imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
它会自动缓存图像,并且只支持从缓存加载(如果需要)。
答案 1 :(得分:1)
在SDImageCache.m中,您将找到以下代码行:
static NSInteger cacheMaxCacheAge = 60*60*24*7; // 1 week
这是缓存的图像生命周期,您可以将其更改为4天而不是7天
答案 2 :(得分:0)
对我来说你的代码看起来不对。你只需设置AsyncImageView的imageURL。
你没有处理装载机
答案 3 :(得分:-2)
我已经解决了这个问题:你需要添加
#import "AsyncImageView.h"
在您的文件.m
中和USE
NSURL *url = [NSURL URLWithString:yourUrlString];
photo.imageURL = url;
OR FOR EXAMPLE
cell.imageView.imageURL = url;
而不是
UIImage *theImage = [UIImage imageWithData:imageData];
photo.image = theImage;