iOS开发 如何做一个图片缓存框架

2020-12-14  本文已影响0人  喜剧收尾_XWX

原文请参考:https://www.jianshu.com/p/9d114a82f77b


参照SDWebImage做,主要考虑以下几点

在图片的存储是以图片的单向 hash 值为 Key

1.Manager

Manager用于管理downloaderCache,设置options参数,让用户设置缓存策略

2.内存缓存

内存中缓存的数据,需要考虑存储的size,针对不同尺寸的图片,给出不同的方案

内存的淘汰策略 采取 LRU(最近最少使用算法)

触发淘汰策略的时机:

3.磁盘缓存

磁盘缓存需要考虑的问题如下

4.网络下载

5.图片解码解压缩

针对jpg、png、gif等不同的图片格式进行解码

解码调用时机

避免在主线程中解压缩、解码,避免卡顿

6.封装视图Category

基于Manager封装响应控件的Category

- (void)sd_setImageWithURL:(nullable NSURL *)url
          placeholderImage:(nullable UIImage *)placeholder
                   options:(SDWebImageOptions)options
                  progress:(nullable SDImageLoaderProgressBlock)progressBlock
                 completed:(nullable SDExternalCompletionBlock)completedBlock;
上一篇 下一篇

猜你喜欢

热点阅读