• 图片的异步请求方法探讨


    我们在网上异步请求图片的时候,由于异步请求的特性,我们不能清楚的知道图片加载完成的具体时间,并且由于图片一般都比较消耗内存,所以,当我们刷新或者拖动页面的时候,对于已经加载过得图片就没有必要再次加载.

    同时,我们还可以给图片加载一个缓冲的界面,当图片处于加载阶段时,不至于页面上什么都没有;

    首先,我们创建一个图片管理的类,用于管理图片的加载

    然后我们在.m中重写urlString的set方法,当我们在外界调用的时候就会进入该方法,实现我们想要的操作

    由于iOS的沙盒机制,所以图片的缓存一般会存放在沙盒里的cach文件下.我们首先找到沙盒里面的cach文件夹路径,在找路径之前,我们先将我们获取的图片的名字改为我们获取图片的路径,就是将路径作为图片名,这样就能保证图片的名字不会重复

    1,重写系统set方法

    2,更改图片的名字,并且找到文件在沙盒中的路径

    接下来就要用到我们的图片管理类NSFileManger,查询该路径下是否存在缓存图片,如果存在,那么我们就直接调用,不用再次加载图片.如果不存在,我们再对图片进行加载

    首先判断图片是否讯在,如果存在我们就直接显示图片

    如果不存在我们就要运用异步请求的block方法来获取图片,并且存放到沙盒中

    这样图片的异步请求就完成了,但是还没有达到我们预期的效果,因为之前说的在图片还没有加载出来时的占位图片还没有设置.如果细心的话就会发现,.h中还有一个方法没有实现.而这个方法就是实现我们这一需求的方法

    到这里,我们关于图片的设置就基本上完成了,现在只需要在需要的地方调用我们的方法就可以了.那么下面我们就一起来看看关于调用的方法

    到此,我们的整个工作基本上算是完成了,当然大家可以根据自己的不同的需求来更改,这里只是提供一些简单地参考方法.




  • 相关阅读:
    FreeMarker list指令(3.2)
    FreeMarker if指令(3.1)
    FreeMarker FTL常用指令(3)
    FreeMarker模板文件的组成(2)
    FreeMarker语言概述(1)
    动态执行--获取某数据库某表某些字段的唯一值
    Luogu P3403 跳楼机|同余最短路
    Luogu P1640 [SCOI2010]连续攻击游戏|二分图
    **** **** 黑白球|DP
    **** **** 建筑物|DP
  • 原文地址:https://www.cnblogs.com/nsjelly/p/4314252.html
Copyright © 2020-2023  润新知