我想设置一个缩略图 url 和高分辨率图像 url,以便下载第一个缩略图,然后下载高分辨率图像
问问题
3536 次
3 回答
7
实际上,你不需要创建任何隐藏的东西UIImageView
来做这个把戏。
您要做的就是设置第一个URL(带有较小的图像)直接下载到您的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
选项的。这样,图片(自然应该比第一个大)将以低优先级下载,不应该取消第一次下载。
于 2013-06-17T17:19:31.413 回答
3
很晚了,但我用下面的代码解决了我的问题
UIImageView * hiddenImageView = [[UIImageView alloc] init];
[hiddenImageView sd_setImageWithURL:thumbUrl completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (image) {
mImageView.image = image;
}
if (originalUrl != nil) {
[mImageView sd_setImageWithURL:originalUrl placeholderImage:image completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL){
if (image) {
mImageView.image = image; // optional
}
}];
}
}];
于 2015-10-23T08:54:48.877 回答
1
下载到视图上某个隐藏的 UIImageView,然后在加载完成后在两者之间切换,通过:
[cell.imageView setImageWithURL:[NSURL
URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {... completion code here ...}];
于 2013-02-06T22:55:39.280 回答