UITabelView一般会显示大量数据,如果有多少条数据就新建多少个cell,那么对于内存来说是种极大的负担,这样自然是不合理的,所以才会有重用机制

比如一个家庭办酒席,一共有13桌,每桌20个菜,那么准备150个左右的盘子就够盛菜了,如果盘子不够用了就把之前已经吃光菜的盘子收走洗洗干净就能重复使用了,这大致上就是重用机制的展示了

下图显示的cell一共有6个

当把显示金毛的这个cell滚出屏幕外了,这个cell就会被自动放进重用池中。当哈士奇下面一个的cell出现的时候,就会自动去重用池中找一个cell使用,这样就避免了不停去创建cell导致内存崩溃的问题

下面是代码举例:

//设置每行显示什么内容,也就是指定每一行的cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //创建一个重用标识符
static NSString *reuseIdentifier = @"reuse"; //表视图通过重用标识符去重用池中查找是否有能够被重用的cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier]; if (cell == nil) {
//创建一个cell
/**
cell样式有四种
default、subititle、value1、value2
*/
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier] autorelease];
NSLog(@"创建了一个新的cell");
cell.selectionStyle = UITableViewCellSelectionStyleNone;
} //指定cell内部空间的显示内容
//重用池中取出的cell,并没有释放,所以会保留原有的内容,如果想要显示自己的信息,需要对cell内部的控件进行重新赋值
// cell.textLabel.text = @"你是朱珍洁吗";
// cell.detailTextLabel.text = @"你才是猪"; cell.textLabel.text = _dataArray[indexPath.section][indexPath.row]; cell.imageView.image = [UIImage imageNamed:@"mao.jpg"]; return cell;
}

UITableViewCell的重用机制的更多相关文章

  1. UITableViewCell的重用机制原理

    UITableViewCell的重用机制原理 来自http://blog.csdn.net/omegayy/article/details/7356823 ====================== ...

  2. IOS中UITableViewCell的重用机制原理

    创建UITableViewController子类的实例后,IDE生成的代码中有如下段落: - (UITableViewCell *)tableView:(UITableView *)tableVie ...

  3. UITableViewCell重用机制

    UITableView是iOS开发中使用频率非常高的一个控件,它常被用来展示信息列表,尽管信息数据可能非常多,但UITableView消耗的资源却并不会随着展示信息的增多而变大,这都要得益于UITab ...

  4. iOS - UITableView中Cell重用机制导致Cell内容出错的解决办法

    "UITableView" iOS开发中重量级的控件之一;在日常开发中我们大多数会选择自定Cell来满足自己开发中的需求, 但是有些时候Cell也是可以不自定义的(比如某一个简单的 ...

  5. iOS基础篇(十三)——UITableView(一)重用机制

    UITableView是app开发中常用到的控件,功能很强大,常用于数据的显示.在学习UITableView使用之前,我们先简单了解一下: 1.UITableView的重用机制 UITableView ...

  6. 从cellForRowAtIndexPath 看cell的重用机制

    今天突然发现一个问题,由于对UITableViewCell 的重用机制不是很了解,让我纠结很久: 用过reloadData时候,会调用cellForRowAtIndexPath方法,但是请看以下2种c ...

  7. iOS--cell的重用机制

    对于像我们这样的初学者来说,cell重用机制是很难理解的内容,所以我们不一定非得理解,会用就行. cell的重用机制:当我们使用tableView时,系统只会创建屏幕中显示的cell的个数+1,当ce ...

  8. ios基础之UITableViewCell的重用(带示例原创)

    之前一个月刚刚系统的开始接触IOS开发,对UI控件大体了解了一遍,但是因为没有实际的参与项目,对细枝末节的还是不很清楚. 昨天突然想到:UITableViewCell的重用到底是怎么回事,上网查了许多 ...

  9. tableview的重用机制(面试必问)

    iphone重用机制是苹果为了实现大量数据显示而采用的一种节省内存的机制,比如在UITableView和ScrollView 等地方.为什么要“可重用”???对于我们的项目来说,内存控制是必不可少的, ...

随机推荐

  1. Java 多态

    多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来. 继承允许将对象视为它自己本身的类型活基类型来加以处理. 方法调用绑定 绑定: 将一个方法调用同一个方法主体关联起来. 前期绑定:在程序执 ...

  2. Cmake的交叉编译

    http://www.cmake.org/Wiki/CMake_Cross_Compiling

  3. 原生态ajax

    用户名是否被注册过? 创建出注册信息: <h1>注册信息</h1> <input type="text" name="txtName&quo ...

  4. DbContext 和ObjectContext两者的区别

    http://blog.csdn.net/lvjin110/article/details/24642911 ObjectContext是一种模型优先的开发模式,DbContext是代码优先的开发模式 ...

  5. BZOJ1190[HNOI2007]梦幻岛宝石

    Description 给你N颗宝石,每颗宝石都有重量和价值.要你从这些宝石中选取一些宝石,保证总重量不超过W,且总价值最大为,并输出最大的总价值.数据范围:N<=100;W<=2^30, ...

  6. HTML错误码

    1XX 信息性状态码 2XX 成功状态码 3XX 重定向状态码 4XX 客户端错误状态码 5XX 服务器错误状态码

  7. svg拉伸,原来凹凸可以这么玩

    原文:http://www.smartjava.org/content/render-geographic-information-3d-threejs-and-d3js The last coupl ...

  8. 分布式光伏系列:分布式光伏电站 运行与维护方案一览(zz)

    原文:http://www.toutiao.com/a6353487210709516546/ 中小型光伏电站的特点是占地面积小.安装位置灵活且日常维护量少.由于光伏电站不同的运行环境,为了能够使光伏 ...

  9. 关于Unity的网络框架

    注:Unity 5.1里引入了新的网络框架,未来目标应该是WOW那样的,现在还只是个P2P的架子. 网络的框架,无非是如何管理网络数据的收发,通信双方如何约定协议.之前做的框架与GameObject无 ...

  10. CCPC2016杭州现场赛

    A(hdu5933):(贪心) 题意:长度为n的数组: a1, a2,⋯, 每次操作要么可以merge两个相邻的数为一个, 值为两个数的和; 要么可以把一个数分裂成两个, 两个数的和为原数. 用最少的 ...