随笔分类 -  SDWebImage源码学习

摘要:这个分类是给 UIImageView 针对不同的情况添加 UIImage。 .h 下面是 UIImageView 可以使用的不同的加载图片的方式: 根据 url 异步下载和缓存 image,并把返回的 image 赋给 UIImageView。 先用一个占位图片给 UIImageView 赋图,当图 阅读全文
posted @ 2017-06-11 12:10 鳄鱼不怕牙医不怕 阅读(286) 评论(0) 推荐(0)
摘要:这个分类只是为 UIImageView 的 highlightedImage 赋图。 这个是该分类里面所有下载图片的方法最后都会调取的方法,同 UIButton 一样,也是调用 UIView 的 WebCache 分类里面下载图片的方法。下载完成后: END 阅读全文
posted @ 2017-06-11 12:07 鳄鱼不怕牙医不怕 阅读(317) 评论(0) 推荐(0)
摘要:这是 SDWebImage 里面针对 UIButton 添加图片添加的一个 WebCache 分类。 .h 获得当前图像的 URL。 根据 UIControlState 获得指定的图像的 URL。 根据 state 给 UIButton 设置指定状态的 UIImage。 添加一个在图片下载完成之前的 阅读全文
posted @ 2017-06-11 10:03 鳄鱼不怕牙医不怕 阅读(380) 评论(0) 推荐(0)
摘要:这个分类主要用来对 UIView 的图像下载操作添加、取消和移除。 .h 设置图像加载操作。 根据 key 取消 UIView 的所有当前操作。 仅仅根据 key 移除对应的当前 UIView 的操作,并没有取消它们。 .m 定义一个静态 char loadOperationKey,主要用于下面关联 阅读全文
posted @ 2017-06-10 19:21 鳄鱼不怕牙医不怕 阅读(472) 评论(0) 推荐(0)
摘要:这是 SDWebImage 针对 UIView 添加的一个 WebCache 的分类。 .h 命名block 定义的 Method 获取当前图像的 URL。 注意:因为分类的限制,此属性可能不同步。例如直接使用 setImage: 。 使用一个 url 和任意一个占位图片给 imageView 设置 阅读全文
posted @ 2017-06-10 15:19 鳄鱼不怕牙医不怕 阅读(307) 评论(0) 推荐(0)
摘要:这个 UIImage 的一个叫 MultiFormat 的分类,看名字可能已经猜到,UIImage 的多版本,主要功能是用来做 NSData 和 UIImage 的相互转化的。 .h 定义了 3 个方法,基本只是看方法名和返回值,已经基本猜到各个方法要实现的功能。 1.这是一个类方法,一个NSDat 阅读全文
posted @ 2017-06-10 12:28 鳄鱼不怕牙医不怕 阅读(571) 评论(0) 推荐(0)
摘要:看标题的 NSImage 应该知道这是针对 macOS 平台开发时使用的一个 NSImage 的一个分类。 由于目前只是做 iOS 开发,对 macOS 开发几乎完全不了解,所以这篇只是针对 SDWebImage 中的各个文件的一篇例行文章。 .h 首先条件预编译判断是否是 MAC 平台开发。 如果 阅读全文
posted @ 2017-06-10 12:19 鳄鱼不怕牙医不怕 阅读(427) 评论(0) 推荐(0)
摘要:SDWebImagePrefetcherDelegate 代理提供了两个方法: 1.每次下载完成一个图片,finishedCount 表示对图像进行预取的总数(成功或失败)totalCount 图像将被预取的总数。 2.当所有的图像下载完毕,totalCount 对图像进行预取的总数(无论成功或者失 阅读全文
posted @ 2017-06-09 21:19 鳄鱼不怕牙医不怕 阅读(593) 评论(0) 推荐(0)
摘要:SDWebImageManager 是整个 SDWebImage 里面最核心的类之一。 SDWebImageOptions 这是一个 NS_OPTIONS 的枚举,表示下载的选项。 SDWebImageRetryFailed 默认情况下,每一个图片下载都有一个 URL,如果这个 URL 是错误的或者 阅读全文
posted @ 2017-06-09 06:32 鳄鱼不怕牙医不怕 阅读(412) 评论(0) 推荐(0)
摘要:这篇学习 SDWebImageDownloader 这个类。 首先依然是看 SDWebImageDownloader.h: SDWebImageDownloaderOptions 这是一个 NS_OPTIONS 的枚举,用来表示不同的下载选项。 当需要给某个功能添加 Options 的时候或者对不同 阅读全文
posted @ 2017-06-08 06:51 鳄鱼不怕牙医不怕 阅读(378) 评论(0) 推荐(0)
摘要:上篇主要对 NSOperation 进行了拓展学习,下面开始着重学习 SDWebImageDownloaderOperation。 通知 这 4 个不可变字符串,分别表示:开始下载、接收到数据、停止、完成的通知。 SDWebImageDownloaderOperationInterface 描述一个 阅读全文
posted @ 2017-06-01 05:29 鳄鱼不怕牙医不怕 阅读(525) 评论(0) 推荐(0)
摘要:SDWebImageDownloaderOperation 继承自 NSOperation。 这里首先学习 NSOperation 类。 Foundation 框架下的 NSOperation 类: 在 iOS 开发中,通常会把比较耗时的操作放在主线程之外的子线程里面去执行。而开辟子线程基本都是使用 阅读全文
posted @ 2017-05-29 06:15 鳄鱼不怕牙医不怕 阅读(339) 评论(0) 推荐(0)
摘要:在上篇中已经了解分析了 SDImageCache.h 文件中所有的方法和属性。大概对 SDImageCache 能实现的功能已经有了全面的认识。在这篇则着重学习研究这些功能的实现过程和实现原理。 SDImageCache 是 SDWebImage 里面用来做缓存的类,虽然只是针对的图片的缓存,但是其 阅读全文
posted @ 2017-05-20 00:10 鳄鱼不怕牙医不怕 阅读(1068) 评论(0) 推荐(0)
摘要:SDImageCache 是 SDWebImage 用来处理图片缓存的类。 在看 SDImageCache 类之前,先分析一下 SDImageCacheConfig 类,它是用来管理缓存配置信息的。 SDImageCacheConfig.h 解压缩图像下载和缓存可以提高性能,但是会消耗大量内存, 默 阅读全文
posted @ 2017-05-14 21:12 鳄鱼不怕牙医不怕 阅读(1311) 评论(0) 推荐(0)
摘要:一般我们都是使用: 和: 两种方式加载图片,它们两个的区别在SDWebImage源码阅读前的准备(三)UIImage.h 里面的 “(六):加载和创建UIImage 的类方法和实例方法:”部分有详细的介绍。 为什么要对图片进行解码?难道不能直接使用上面的两种加载方式直接进行加载显示吗,答案是可以,而 阅读全文
posted @ 2017-05-13 15:17 鳄鱼不怕牙医不怕 阅读(2247) 评论(0) 推荐(0)
摘要:UIImage+GIF 是UIImage 类的一个GIF 分类,在之前的版本里面这个分类是用了处理GIF 动态图片的但是会有内存暴增的bug。在当前 '4.0.0-beta2' 的版本里GIF 动态图片处理放在了UIImage+MultiFormat 这个分类里面,而当前这个GIF 的分类的功能只是 阅读全文
posted @ 2017-05-06 15:19 鳄鱼不怕牙医不怕 阅读(1237) 评论(0) 推荐(0)
摘要:NSData+ImageContentType 是NSData 的分类(Category)。 创建分类的步骤: 在Xcode 工程页面,按command + N ,在iOS -> Source 选择Objective-C File ,点击Next ,File Type 选择 Category ,fi 阅读全文
posted @ 2017-04-30 10:46 鳄鱼不怕牙医不怕 阅读(439) 评论(0) 推荐(0)
摘要:SDWebImageCompat 是SDWebImage 的配置文件,里面利用条件编译对Apple 的各个平台进行了兼容。可以看到SDWebImage 支持当前的MAC/iOS/TV/WATCH 平台。 对各个平台的兼容性对框架开发意义重大。当前我们只是针对iOS 平台进行阅读理解,但是我们应该知道 阅读全文
posted @ 2017-04-28 15:48 鳄鱼不怕牙医不怕 阅读(597) 评论(0) 推荐(0)
摘要:UIKit/UIImage.h UIImage 继承自NSObject,且遵守NSSecureCoding 协议,UIImage 实例是在应用程序中管理图像数据的对象。 下面逐行阅读UIImage.h 里面的代码: (一):__has_include __has_include 此宏传入一个你想引入 阅读全文
posted @ 2017-04-26 15:51 鳄鱼不怕牙医不怕 阅读(1457) 评论(0) 推荐(0)
摘要:原文地址:http://www.jianshu.com/p/30f76a950604 NSObjcRuntime.h 里面的定义: NS_OPTIONS 实例: 表示轻扫手势的方向: 小括号中第一个为NSUInteger这个为固定值,第二个为枚举类型,自己定义,大括号中枚举项必须全部包含小括号的枚举 阅读全文
posted @ 2017-04-21 11:13 鳄鱼不怕牙医不怕 阅读(312) 评论(0) 推荐(0)