我可以使用SDWebImage加载带有url的小尺寸图像,以便在UIImageView上显示。但我不知道在加载较小尺寸的图像后,如何在同一个UIImageView上加载更大尺寸的图像和另一个url。
[aImageView setImageWithURL:fristUrl placeholderImage:[UIImage imageNamed:@"placeholder.png"] success:^(UIImage *image) {
[aImageView setImageWithURL:secondUrl placeholderImage:image success:^(UIImage *image) {
;
} failure:^(NSError *error) {
NSLog(@"error105size:%@", [error description]);
}];
} failure:^(NSError *error) {
NSLog(@"error50size:%@", [error description]);
}];
我使用了上面的代码,但它崩溃了。 希望你的回答。
答案 0 :(得分:0)
查看Developer.Apple示例LazyTableImages
请阅读ReadMe.txt了解详情
答案 1 :(得分:0)
实际上,您无需创建任何隐藏的UIImageView
即可。
您必须做的是将第一个网址(包含较小的图片)设置为直接下载到UIImageView
,然后使用SDWebImageManager
在后台下载较大的版本。完成下载后,只需在图像视图中设置下载的图像。
以下是你如何做到这一点:
// First let the smaller image download naturally
[self.imageView setImageWithURL:self.imageURL];
// Slowly download the larger version of the image
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:self.currentPhoto.largeImageURL options:SDWebImageLowPriority progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
if (image) {
[self.imageView setImage:image];
}
}];
注意我是如何使用SDWebImageLowPriority
选项的。这样,图像(应该自然大于第一个)将以低优先级下载,不应取消第一次下载。
答案 2 :(得分:0)
UIButton *btn = [[UIButton alloc] init];
[btn sd_setImageWithURL:[NSURL URLWithString:obj.thumbnail_pic] forState:UIControlStateNormal placeholderImage:[UIImage imageNamed:@"photoDefault.png"] options:SDWebImageProgressiveDownload completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"img samll download ok:%@",obj.thumbnail_pic);
if (image) {
[btn sd_setImageWithURL: [NSURL URLWithString:[ctl getBigImg:obj.thumbnail_pic]] forState:UIControlStateNormal
placeholderImage:image];
}
}];