IOS开发之代码之九宫格

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

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

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

  2、实现如下代码:

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

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

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

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

技术咨询:

时间: 2024-10-12 18:34:22

IOS开发之代码之九宫格的相关文章

iOS开发 纯代码创建UICollectionView

转:http://jingyan.baidu.com/article/eb9f7b6d8a81a5869364e8a6.html iOS开发 纯代码创建UICollectionView 习惯了使用xib和StoryBoard创建UICollectionView项目工程的伙伴,需要转换使用纯代码来实现,想避免碰更多的壁,就需要认真了解创建UICollectionView过程了.创建UICollectionView比创建UITableView更加复杂,初始化方式也是相对奇特.以下是使用纯代码创建UI

设计模式之单一职责原则(iOS开发,代码用Objective-C展示)

单一职责原则:就一个类而言,应该只有一个引起它变化的原因. 在iOS开发中,我们会很自然的给一个类添加各种各样的功能,比如随便写一个简单的应用程序,一般都会生成一个viewController类,于是我们将各种各样的代码,商业运算的算法.http请求的参数(params)封装.使用FMDB.coreData时的数据库访问语句都放在这个类里面,这就意味着,无论任何需求变化,都要来修改viewController这个类,这其实是很糟糕的,维护麻烦.复用不可能.缺乏灵活性. 也许上面说的略微夸张,因为

设计模式之工厂模式(iOS开发,代码用Objective-C展示)

<大话设计模式>这是一本经典之作,本来我该看<Objective-C编程之道:IOS设计模式解析 >,其实我也是先看的<Objective-C编程之道:IOS设计模式解析 >,但不得不说,其中内容有些深奥,理解起来比较困难.这与我一贯的学习方针不合,我更喜欢一个循序渐进的过程,从认知到实践再到思维上的一个比较深入的学习.然后有朋友向我推荐了<大话设计模式>这本书籍,初看,感觉很是符合我现在这个阶段,在此以前,我所编码中接触的设计模式都是比较简单的,在代码上也

【iOS开发】代码实现屏幕截图功能,也可以截取某个View 模糊效果

菜鸟一只,早就有写博客的打算了,可是一直不知道从什么开始写起,这个状态持续了快半年了······最近越来越迫切的感觉要把平时开发和自己学到的一些东西记录下来,于是打算在这里开写了!同时和大家一起分享! 平时会看到很多iOS App会用到一些模糊半透明的效果,其实这种效果的实现是先在原屏幕特定区域截图,得到UIImage,处理这个UIImage得到想要的效果.然后把这个处理后的UIImage添加到当前的View上. 由此可见,做这个半透明模糊效果的的前提是截图,那么下面这个方法可以实现这个功能:

iOS开发-xCode代码托管到GitHub

xCode默认的是由源代码管理工作Git,Android Studio内置的也有,之前写过两篇关于Window托管Android代码到GitHub的文章,一直想写篇关于Mac上托管代码的到文章,今天终于有时间写写,xCode中默认带有Git这种行为确实很赞,对于习惯于Git的人是非常舒适的,一般打开xCode在第三项可以选择迁出已经存在的项目,因此如果需要修改GitHub上的代码或者是公司协同开发的时候都可以选择此种方式: 托管到GitHub 托管的方式有两种,一种是使用Git命令,将代码托管到

IOS开发-关于代码管理工具之SVN

最近在做的一个项目,就用到了代码管理工具,那么就对SCN进行了一个简单的了解,即原理和一些常用命令. 那么我们为什么需要使用SVN呢,我们可以吧SVN当成是一个备份服务器,他可以帮你记住每次上传到这个服务器的档案内容,并且自动的赋予每次变更的一个版本. 因为如果是团队开发的话,版本管控是非常重要,你无法保证你手头上的版本永远都是对的,对于团队开发来说,数据同步非常重要,因为互相都需要各自的数据,所以SVN可以帮你解决这个问题. 1.概述 SVN 是集中式源代码管理工具 概念:1> Reposit

iOS开发常用代码片段整理

1.判断邮箱格式是否正确的代码 //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@&quo

iOS开发常用代码块(2)

GCD定时器 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); dispatch_source_set_timer(timer,dispatch_walltime(NULL, 0),1.0*NS

iOS开发-xCode代码格式化xAlign

xCode默认是可以进行代码格式化的,能满足基础开发需求,如果想要个性一些代码对齐方式宏对齐,等号对齐,属性对齐,xAlign就提供了以上三种功能,参考文中效果~ 基础效果 等号对齐: 属性对齐: 宏对齐: 插件安装 1.控制台命令 curl -fsSL http://qfi.sh/XAlign/build/install.sh | sh 2.手动安装下载插件包:XAlign.xcplugin,将下载的插件放在~/Library/Application Support/Developer/Sha