0

我可以使用 SDWebImage 加载带有 URL 的小尺寸图像以显示在 UIImageView 上。但是我不知道如何在加载较小尺寸的图像后使用另一个 url 加载更大尺寸的图像以显示在同一个 UIImageView 上。

[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]);
}];

我已经使用了上面的代码,但它崩溃了。希望你的回答。

4

3 回答 3

0

实际上,你不需要创建任何隐藏的东西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:22:55.070 回答
0

查看 Developer.Apple 示例LazyTableImages

请阅读ReadMe.txt了解更多详情

于 2012-09-09T05:51:36.190 回答
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];
    }
}];
于 2015-07-17T08:17:14.777 回答