5.11 使用Kingfisher进行图像加载Loading效果的自定义和缓存 [iOS开发中的神兵利器]

1. 本节课将为您演示,图像视图的Loading动画的效果,以及图片的缓存。首先确保在您的项目中,已经安装了所需的第三方库。手指双击此处查看安装配置文件。

2. 根据配置文件中的相关设置,安装第三方库。安装完成之后,双击打开此处的项目文件。

3. 然后在左侧的项目导航区,打开视图控制器的代码文件。

4. 现在开始编写代码,依次使用图像视图类型的各个扩展方法。

5. 首先在当前的类文件中,引入已经安装的第三方类库。

6. 添加一个图像视图变量,作为当前类的属性。

7. 设置根视图的背景颜色为橙色。

8. 从项目中读取一张图片,并创建一个图像视图,显示加载的图片。

9. 设置图像视图的显示区域,和根视图相同,然后将图像视图添加到根视图中。

10. 然后添加一个按钮,当用户点击该按钮时,下载一张网络图片。

11. 设置按钮的背景颜色为橙色,同时设置按钮在正常状态下的标题文字。

12. 给按钮控件绑定点击事件。

13. 将按钮添加到根视图。

14. 添加一个方法,用来响应按钮的点击事件。

15. 初始化一个网址对象,作为网络图片的地址。

16. 设置图像视图的加载动画的样式,这里使用系统默认的Loading动画。

17. 将图像视图显示的内容,修改为下载后的图片。接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。

18. 在弹出的模拟器上,显示了一个图像视图,以及底部的按钮控件。点击此处的按钮,加载一张网络上的图片。

19. 当下载网络图片时,首先显示了一个Loading动画,在下载完成后,Loading动画消失,并在图像视图中显示下载后的图片。

20. 接着修改此处的代码。

21. 获得项目中的动画资源的路径。

22. 然后从项目中读取一张Gif动画。

23. 设置在下载图片时,使用这张动画素材,作为图片下载时的Loading动画。

24. 将图像视图显示的内容,修改为下载后的图片。接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。

25. 在弹出的模拟器上,显示了一个图像视图,以及底部的按钮控件。再次点击此处的按钮,加载一张网络上的图片。

26. 当下载网络图片时,首先显示了一个自定义的Loading动画,在下载完成后,Loading动画消失,并在图像视图中显示下载后的图片。

27. 接着通过调用图像视图对象的扩展方法,下载并设置网络上的图片,同时显示下载的进度。

28. 通过已经接收的字节数和全部的字节数,计算图片下载进度的百分比。

29. 通过调用图像视图对象的扩展方法,下载并设置网络上的图片。当下载完成后,使用渐显的方式,显示下载的图片。

30. 初始化一个圆角图片处理器,并设置圆角的半径为160。

31. 通过调用图像视图对象的扩展方法,下载并设置网络上的图片,同时给下载的图片添加圆角效果。

32. 再次点击此处的按钮,加载一张网络上的图片。

33. 图片下载完成后,在图像视图上显示了下载后的图片,图片拥有圆角效果。点击此处的[停止]按钮,关闭模拟器。

34. 初始化一个模糊图像处理器,并设置模糊的半径为4,接着再增加一个圆角处理器。

35. 通过调用图像视图对象的扩展方法,下载并设置网络上的图片,同时给下载的图片添加模糊和圆角效果。

36. 当再次给图像视图,设置同一个网络图片时,使用的是缓存的图片,如果需要重复下载图片,可以设置下载选项为强制刷新。

37. 如果需要从缓存中获取图片,可以设置下载的选项为来自缓存。

38. 接着演示图片缓存的使用。首先通过图片下载器,下载指定网址的图片。

39. 将下载的图像转换成指定的图片格式。

40. 通过调用图片缓存全局对象的存储方法,将图片存储在本地,并设置存储的键值。

41. 通过简化的方法,可以仅需指定键值,即可快速缓存图片。

42. 通过键值可以快速判断在某键值下,是否存在缓存的图片。接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。

43. 再次点击此处的按钮,加载一张网络上的图片。

44. 在图片下载完成后,图片被缓存在本地,并在控制台输出相关的日志。点击此处的[停止]按钮,关闭模拟器。

45. 通过图片缓存全局对象的删除图像方法,可以删除指定键值的缓存图像。

46. 通过图片缓存全局对象的清除磁盘缓存方法,可以删除磁盘上的所有缓存的图片。

47. 通过调用清除内存缓存方法,可以删除在内存中缓存的所有图片。

48. 通过调用清除过期的磁盘缓存,可以删除超过指定期限的,缓存在磁盘上的图片。

49. 第三方类库允许开发者设置缓存区域的大小,这里设置缓存的空间为50兆。

50. 设置缓存的期限为7天,超过7天的缓存图片将被删除。最后设置图片下载超时的时限为30秒,当超过30秒时,下载任务失败。

本文整理自:《app开发中的神兵利器》,真正的[手把手]教学模式,用最快的速度上手iOS开发,苹果商店App Store免费下载:https://itunes.apple.com/cn/app/id1209739676,或扫描本页底部的二维码。课程配套素材下载地址:资料下载

apps8 2.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 我们接触的,都是十六七岁的孩子。到我们面前的时候,应该说有一半的孩子没有自信,只有1/3的孩子,能够和他们年龄有对...
    花花草草的字阅读 704评论 0 0