通过UIScrollView展示图片的时候,如果直接向UIScrollView添加UIImageView,在图片数量比较少的时候是没有问题的,但是当我们添加图片数量非常多的时候,会占用大量的内存,我们就来讲一下怎样通过重新构建一个可以实现视图重用的的UIScrollView来避免这样的事情发生!

第一步:创建一个自定义的UIScrollView

1、添加两个protocol来通过代理获取相应的数据,通过一个枚举类型判断边距类型

  2、实现如下代码:

  3、实现的时候我们可以通过layoutsubviews(UIScrollView 滑动的时候会调用)方法来实现,通过滑动来判断那些应该会显示出来,那些不应该显示出来,如果应该显示出来,我们就通过addSubview方法添加到UIScrollView上,如果不应该显示出来,而且原先还存在的话,我们就把他从UIScrollView上去掉,放到一个缓存池中

4、在使用的时候,通过一个NSString *来判断所需要的重复使用的视图类型,然后从缓存池中获取

  5、最后运行程序,效果如下图,无论怎样滑动,内存占用都会比以前小很多

作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

技术咨询:
 

最新文章

  1. python 列表 总结
  2. 如何向新手程序员介绍Java编程
  3. toolControls添加工具项
  4. GJM :自定义基于 VLC 的视频播放器 [转载]
  5. GsonUtils.java
  6. Python环境变量设置
  7. 02---CSS整理
  8. asp.net+MVC--1
  9. Linux企业级项目实践之网络爬虫(13)——处理user-agent
  10. 经常使用的C#代码(每日更新)
  11. c# winform 视频转字符动画
  12. javascript基础修炼(5)—Event Loop(Node.js)
  13. LeetCode算法题-Number Complement(Java实现-五种解法)
  14. Shell脚本中变量和函数变量的作用域
  15. 搭建EOS环境
  16. 吉哥系列故事——恨7不成妻(数位DP)
  17. Linux 中指定启动 tomcat 的 jdk 版本
  18. Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!
  19. ffmpeg应用笔记
  20. 如何在Linux下用C/C++语言操作数据库sqlite3(很不错!设计编译链接等很多问题!)

热门文章

  1. Git平台使用时的配置分析
  2. Java 第14章 字符串
  3. 找出单链表的倒数第K个(从1开始计数)结点的值
  4. Search in Rotated Sorted Array II leetcode
  5. hive数据类型学习
  6. 平衡树模板 bzoj 3224
  7. 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现
  8. ConcurrentDictionary 对决 Dictionary+Locking
  9. [stm32] MPU6050 HMC5883 Kalman 融合算法移植
  10. Mathematica修改默认字体