SDWebImage框架的基本使用

1下载图片且需要获取下载进度

#import "UIImageView+WebCache.h"
- (void)download1 {
    [self.imageView sd_setImageWithURL:[NSURL URLWithString:@“url”] placeholderImage:[UIImage imageNamed:@"timg"] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
        //下载进度
    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        switch (cacheType) {
            case SDImageCacheTypeNone:
                NSLog(@"直接下载");
                break;
            case SDImageCacheTypeDisk:
                NSLog(@"磁盘缓存");
                break;
            case SDImageCacheTypeMemory:
                NSLog(@"内存缓存");
                break;
            default:
                break;
        }
    }];
}

2只需要简单获得一张图片,不需要设置

#import "SDWebImageManager.h"
- (void)download2 {
    [[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:@"url"] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
        //下载进度
        NSLog(@"%f", 1.0* receivedSize / expectedSize);
    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
        //得到图片
        self.imageView.image = image;
    }];
}

3不需要任何缓存处理

#import "SDWebImageDownloader.h"
- (void)download3 {
    [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:@"url"] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
        //下载进度
    } completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
        //线程间通信
        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
            self.imageView.image = image;
        }];
    }];
}

4播放gif文件

#import "UIImage+GIF.h"
- (void)gif {
    UIImage *image = [UIImage sd_animatedGIFNamed:@"图片名称"];
    self.imageView.image = image;
}

5缓存处理

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
    //1 清空缓存
    //clearDisk:直接删除,重新创建
    //cleanDisk:清除过期缓存,计算当前缓存的大小,和设置的最大缓存数量比较,如果超出那么会继续删除(按照文件创建的先后顺序)
    //过期时间:7天
    [[SDWebImageManager sharedManager].imageCache cleanDisk];
    //2 取消当前所有的操作
    [[SDWebImageManager sharedManager] cancelAll];
}

6)判断图片的类型

#import "NSData+ImageContentType.h"
- (void)tyoe {
    NSData *imageData = [NSData dataWithContentsOfFile:@"文件路径"];
    NSString *typeStr = [NSData sd_contentTypeForImageData:imageData];
}

7)SDWebImage框架内部细节

       最大并发数量:6

    队列中任务的处理方式:先进先出

    缓存文件的保存名称和处理:拿到图片的URL路径,对该路径进行md5加密

    对内存警告的处理方式:内部通过监听通知的方式清理缓存

扫描二维码关注公众号,回复: 1088559 查看本文章

    缓存处理的方式:NSCache

    如何判断图片的类型:只匹配第一个字节

    下载图片的方式:发送网络请求下载图片,NSURLConnection

    请求超时的时间:15.0秒






猜你喜欢

转载自blog.csdn.net/baidu_28787811/article/details/80305702