博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableView的重用
阅读量:5890 次
发布时间:2019-06-19

本文共 1049 字,大约阅读时间需要 3 分钟。

在tableView上显示数据时, 我们需要创建cell来显示每一行的具体数据,当一个tableView数据量较大的时候,连续地alloc出cell会占用大量的内存,这时候就引出了tableView的重用队列。
原理:
只需创建屏幕所能显示的cell数+1个cell, 当某个cell完全出屏幕时, 即加入重用队列;
 当某一行即将显示到屏幕时, 需要一个cell来显示内容,这时它不会马上创建而是会先去重用队列找是否有可用的cell,如果有相同标记的cell,则可以直接拿来用,否则则需要重新创建 。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    //  1.声明一个cell的标记    static NSString *cell_id = @"cell_id";    //  2.创建UITableViewCell,并置空    UITableViewCell *cell = nil;    //  3.到重用队列中查找, 是否有可用的cell    cell = [tableView dequeueReusableCellWithIdentifier:cell_id];    //  4. 如果没有找到可重用的cell,就只能自己创建了    if (cell == nil) {        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cell_id] autorelease];    }    //  5.可以正常使用    cell.imageView.image = [UIImage imageNamed:@"angel"];        cell.textLabel.text = (_dic[_keyArray[indexPath.section]])[indexPath.row];        //  6.返回cell    return cell;}  
posted on
2014-05-27 13:26 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/liuyu521/p/3754911.html

你可能感兴趣的文章
往sde中导入要素类报错000732
查看>>
springboot之启动方式
查看>>
初次安装git配置用户名和邮箱及密钥
查看>>
6.1(续)索引、索引组织表--Oracle模式对象
查看>>
动画 球
查看>>
C++中的堆,栈,静态内存区,常量区
查看>>
动态SQL实现与注意事项(有返回值与无返回值动态SQL 实现)
查看>>
java struts2 debug
查看>>
简单够用的设计
查看>>
Android图片圆角效果
查看>>
WeChat Official Account Admin Platform API Introduction
查看>>
C语言写单链表的创建、释放、追加(即总是在最后的位置增加节点)
查看>>
poj1635
查看>>
C# LINQ详解(一)
查看>>
视频直播点播nginx-rtmp开发手册中文版
查看>>
ruby学习总结04
查看>>
Binary Tree Paths
查看>>
Ueditor自定义ftp上传
查看>>
线程以及多线程
查看>>
PHP队列的实现
查看>>