UIImageView+SDWebImage.h

#import <UIKit/UIKit.h>

typedef void(^DownloadImageSuccessBlock)(UIImage *image);
typedef void(^DownloadImageFailedBlock)(NSError *error);
typedef void(^DownloadImageProgressBlock)(CGFloat progress); @interface UIImageView (SDWebImage) /**
异步加载图片 @param url 图片地址
@param imageName 占位图片名
*/
- (void)downloadImage:(NSString *)url placeholder:(NSString *)imageName; /**
异步加载图片,可以监听下载进度,成功或失败 @param url 图片地址
@param imageName 占位图片名
@param success 下载成功
@param failed 下载失败
@param progress 下载进度
*/
- (void)downloadImage:(NSString *)url
placeholder:(NSString *)imageName
success:(DownloadImageSuccessBlock)success
failed:(DownloadImageFailedBlock)failed
progress:(DownloadImageProgressBlock)progress; @end

UIImageView+SDWebImage.m

#import "UIImageView+SDWebImage.h"

#import "UIImageView+WebCache.h"

@implementation UIImageView (SDWebImage)

- (void)downloadImage:(NSString *)url placeholder:(NSString *)imageName {

    [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:imageName] options:SDWebImageRetryFailed | SDWebImageLowPriority];
} - (void)downloadImage:(NSString *)url placeholder:(NSString *)imageName success:(DownloadImageSuccessBlock)success failed:(DownloadImageFailedBlock)failed progress:(DownloadImageProgressBlock)progress { [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:imageName] options:SDWebImageRetryFailed | SDWebImageLowPriority progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) { progress(receivedSize * 1.0 / expectedSize); } completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) { if (error) { failed(error);
} else { self.image = image;
success(image);
}
}]; } @end

最新文章

  1. 快速Android开发系列通信篇之EventBus
  2. 前端学HTTP之URL
  3. call,apply学习小结
  4. python高级之装饰器
  5. vuejs里封装的和IOS,Android通信模块
  6. js处理url参数
  7. Codeforces Round #385 //再遇状压
  8. C#之桶中取黑白球问题
  9. linux下c语言实现计算磁盘剩余空间
  10. mybatis系列-04-mybatis开发dao的方法
  11. java实现.net中的枚举
  12. 大型系统OA--需求
  13. mac上charels抓包工具使用技巧
  14. 自定义Filter服务
  15. win7 tomcat
  16. C# 存储过程使用方法
  17. 数组的map方法
  18. Git基础-打标签
  19. 为什么Java字符串是不可变对象?
  20. Centos系统下Lamp环境的快速搭建(超详细)

热门文章

  1. Distinct 去掉重复 order by
  2. 将金额数字转换为大写汉字的js函数
  3. OLEDB 简单数据查找定位和错误处理
  4. linux环境下 mysql数据库忘记密码 处理办法
  5. window.frames在不同浏览器中的用法
  6. Android SharedPreferences存储数据
  7. Android 笔记之 Android 系统架构
  8. input type=number去掉上下箭头
  9. 通过调用Word模板(Doc、dot)直接打印 z
  10. 【面试虐菜】—— 常用SQL语句