多线程:使用ImageView分类下载图片(模仿 SDWebImage)
来源:互联网 发布:php统计总访问量代码 编辑:程序博客网 时间:2024/05/16 09:24
#import <UIKit/UIKit.h>@interface UIImageView (WebImage)- (void)setImageWithURLString:(NSString *)URLString;@end#import "UIImageView+WebImage.h"#import <objc/runtime.h>#import "DownLoadImageManager.h"@interface UIImageView ()@property (nonatomic, copy) NSString *currentURL;@end@implementation UIImageView (WebImage)- (void)setImageWithURLString:(NSString *)URLString { // 分类不能直接添加属性 -> 如果能添加属性,用分类下载图片就完成了 /* 运行时(Runtime)来动态添加属性 会没有用过(了解过)运行时机制 -> 第三方 什么是运行时? OC是运行时做的 运行时通常我们会用到三个: 1. 动态添加属性 -> 分类 (BlockKit) 2. 交换方法地址 -> 安全上(怎么让数组越界而程序不崩,字典) 3. 获取属性列表 -> 字典转模型 */ // 下载图片 self.image = nil; // 判断要下载的URL跟上一个下载的URL的关系 if (![URLString isEqualToString:self.currentURL] && self.currentURL) { // 取消上一个下载操作 [[DownLoadImageManager shareManager]cancelDownload:self.currentURL]; } self.currentURL = URLString; [[DownLoadImageManager shareManager]downloadOperationWithURLString:self.currentURL finish:^(UIImage *image) { self.image = image; }];}#define CZCurrentURL "currentURL"- (NSString *)currentURL {// @selector(currentURL) void * 相当于 oc 的 ID return objc_getAssociatedObject(self, CZCurrentURL);}- (void)setCurrentURL:(NSString *)currentURL { /* 1. 绑定的对象 2. 相当于属性名字 selector 3. 属性的值 4. 修饰方式 OBJC_ASSOCIATION_ASSIGN = 0, assign OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, retain(strong) nonatomic OBJC_ASSOCIATION_COPY_NONATOMIC = 3, copy nonatomic OBJC_ASSOCIATION_RETAIN = 01401, retain(strong) atomic OBJC_ASSOCIATION_COPY = 01403 copy atomic */ // 动态绑定值到对象上 objc_setAssociatedObject(self, CZCurrentURL, currentURL, OBJC_ASSOCIATION_COPY_NONATOMIC);}@end
0 0
- 多线程:使用ImageView分类下载图片(模仿 SDWebImage)
- 多线程:使用ImageView下载图片(模仿 SDWebImage)
- 工具类:给 ImageView 类增加下载图片的功能(模仿 SDWebImage/runtime 用法1:动态添加属性)
- 多线程:实现下载图片(使用 SDwebImage框架)
- 多线程:下载图片(不用SDWebImage)
- 网络多线程下载图片(SDWebImage)
- 多线程: 自定义操作(模仿 SDWebImage)
- 多线程:简化自定义操作(模仿 SDWebImage)
- 使用SDWebImage直接下载图片
- 网络多线程-下载图片(不用SDWebImage框架)
- 多线程:下载管理器(模拟 SDWebImage)
- SDWebImage在多线程下载图片时防止错乱的策略
- SDWebImage在多线程下载图片时防止错乱的策略
- SDWebImage下载和缓存图片(UIImge)
- SDWebImage下载图片
- SDWebImage下载图片
- 利用sdwebImage下载图片
- SDWebImage-SDWebImageDownloader下载图片
- JFinal学习--06操作数据库
- Android AsynTask源码分析和优缺点
- linux中部署SVN服务器
- push到github时,每次都要输入用户名和密码的问题
- 手机游戏资源 特效 显存分析工具
- 多线程:使用ImageView分类下载图片(模仿 SDWebImage)
- phpcms二次开发_创建功能模块
- 轮廓查找问题小记
- jQuery.form.js使用
- 算法:实现链表存储的回文字符串判断
- 美容护肤小技巧
- Java 构造器之构造器的隐式调用和显式调用
- iOS中GCD的使用小结
- DOM操作表格和样式