我们在网上异步请求图片的时候,由于异步请求的特性,我们不能清楚的知道图片加载完成的具体时间,并且由于图片一般都比较消耗内存,所以,当我们刷新或者拖动页面的时候,对于已经加载过得图片就没有必要再次加载.
同时,我们还可以给图片加载一个缓冲的界面,当图片处于加载阶段时,不至于页面上什么都没有;
首先,我们创建一个图片管理的类,用于管理图片的加载
然后我们在.m中重写urlString的set方法,当我们在外界调用的时候就会进入该方法,实现我们想要的操作
由于iOS的沙盒机制,所以图片的缓存一般会存放在沙盒里的cach文件下.我们首先找到沙盒里面的cach文件夹路径,在找路径之前,我们先将我们获取的图片的名字改为我们获取图片的路径,就是将路径作为图片名,这样就能保证图片的名字不会重复
1,重写系统set方法
2,更改图片的名字,并且找到文件在沙盒中的路径
接下来就要用到我们的图片管理类NSFileManger,查询该路径下是否存在缓存图片,如果存在,那么我们就直接调用,不用再次加载图片.如果不存在,我们再对图片进行加载
首先判断图片是否讯在,如果存在我们就直接显示图片
如果不存在我们就要运用异步请求的block方法来获取图片,并且存放到沙盒中
这样图片的异步请求就完成了,但是还没有达到我们预期的效果,因为之前说的在图片还没有加载出来时的占位图片还没有设置.如果细心的话就会发现,.h中还有一个方法没有实现.而这个方法就是实现我们这一需求的方法
到这里,我们关于图片的设置就基本上完成了,现在只需要在需要的地方调用我们的方法就可以了.那么下面我们就一起来看看关于调用的方法
到此,我们的整个工作基本上算是完成了,当然大家可以根据自己的不同的需求来更改,这里只是提供一些简单地参考方法.