首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解SDWebImage下载机

理解SDWebImage下载机
EN

Stack Overflow用户
提问于 2015-08-11 18:56:44
回答 2查看 1.1K关注 0票数 4

医生不会帮我剪的。有人能给我一个示例代码或一个示例来实例化SDWebImage下载器并使用downloadImageWithURL方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 19:04:27

我已经为此创建了一个类,但下面是我如何使用它:

代码语言:javascript
复制
- (void)setImageURL:(NSURL *)imageURL {
    _imageURL = imageURL;
    self.image = nil;
    [self.layer removeAllAnimations];

    if (!imageURL) {
        self.image = self.placeHolderImage;
        return;
    }

    __weak SDImageView *weakself = self;

    self.progressView.hidden = NO;

    SDWebImageDownloaderProgressBlock progressBlock =
    ^(NSInteger receivedSize, NSInteger expectedSize) {
        if (expectedSize > 0) {
            float progress = receivedSize / (float)expectedSize;
            weakself.progressView.progress = MAX(MIN(1, progress), 0);
        }
    };

    SDWebImageCompletionWithFinishedBlock successBlock =
    ^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
        if (!image) image = self.placeHolderImage;

        weakself.imageOperation = nil;
        weakself.progressView.hidden = YES;
        weakself.progressView.progress = 0.f;

        if (cacheType == SDImageCacheTypeNone && !error) {
            [UIView transitionWithView:self
                              duration:1.f
                               options:UIViewAnimationOptionTransitionCrossDissolve
                            animations:^{
                                weakself.image = image;
                            } completion:nil];
        } else {
            weakself.image = image;
        }
    };

    SDWebImageManager *manager = [SDWebImageManager sharedManager];
    self.imageOperation = [manager downloadImageWithURL:imageURL
                                                options:SDWebImageRetryFailed
                                               progress:progressBlock
                                              completed:successBlock];
}
票数 6
EN

Stack Overflow用户

发布于 2015-08-11 19:05:16

你想做什么?告诉我们更多的细节。

Stackoverflow:https://stackoverflow.com/a/27617962/846780

Github:https://github.com/ZuYuanZhou/testSD

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31949821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档