UITableView的重用池优化

news/2024/7/20 20:19:39 标签: iOS, uitableview, 优化

       对于软件开发,表格视图是一个十分重要的UI视图。在iOS中,表格视图由UITableView这个类来提供支持。UITableView内部封装了一套复用机制,通过复用,开发者可以高效第展示数据量非常大的列表而不用担心内存方面的问题。

        UITableView对其中cell的复用采取复用池的设计模式。例如,一个表格视图有100行数据,视图上每屏可以显示10行数据,那么UITableView实际上创建其上cell视图的时候只需创建11个cell视图即可够用,当cell被滑出屏幕外则它被收进复用池,新的cell将要滑入屏幕时从复用池中取用。

在实例化cell之前添加以下三个步骤:

1.声明一个标识符:

// static 避免多次分配内存
    static NSString *identifier = @"cell";

2.创建cell时,先到复用池中去找

// 1. 到缓存池中去找cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
UITableView类的dequeueResableCellWithIdentifier:方法相当于从复用池中取出cell。


3.判断是否取到,如果没有,则实例化新的cell

if (nil == cell) {
        // 实例化tableViewcell
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
    }






http://www.niftyadmin.cn/n/748748.html

相关文章

前端公共图表数据大盘方案

前言 清风文学网 m.198200.com 前端常常会在的业务中后台开发数据统计图表,对于类似Echarts这种配置性极强的库,需要花费很多时间查看文档, 一个项目中统计图表大多情况下只占少部分,平时写的不多容易忘记配置,重复开…

js设置canvas的宽高(动态设置canvas的宽高)

设置canvas的宽高有两种方式&#xff1a; 1&#xff1a;在html的canvas标签中设置宽高 <body><canvas id"canvas" width"300" height"300"></canvas></body>2&#xff1a;在js中设置canvas的宽高注意&#xff1a;在js中…

Java并发编程(01):线程的创建方式,状态周期管理

本文源码&#xff1a;GitHub点这里 || GitEE点这里 一、并发编程简介 峡谷小说网 www.xiagu.org 1、基础概念 程序 与计算机系统操作有关的计算机程序、规程、规则&#xff0c;以及可能有的文件、文档及数据。 进程 进程是计算机中的程序&#xff0c;关于某数据集合上的一次…

css overflow属性

定义和用法&#xff1a; overflow属性规定当内容溢出元素框时发生的处理。 属性值&#xff1a; 1&#xff1a;visible 默认值。内容不会被修剪&#xff0c;会呈现在元素框之外。 2&#xff1a;hidden 内容会被修剪&#xff0c;并且其余内容是不可见的。 3&#xff1a;scr…

全网最详细的一篇Flutter 尺寸限制类容器总结

Flutter中尺寸限制类容器组件包括ConstrainedBox、UnconstrainedBox、SizedBox、AspectRatio、FractionallySizedBox、LimitedBox、Container。这些组件可以约束子组件的尺寸&#xff0c;下面一一介绍。 ConstrainedBox 老幺 www.laoyao.org ConstrainedBox组件约束子组件的最…

python3 连接mysql数据

1、准备工作&#xff1a; python3连接mysql数据库&#xff0c;需要经过安装mysql数据库和数据库驱动程序&#xff08;这里采用pymysql&#xff09;以及Python应用编程三个步骤。首先确保应用都安装成功。 2、连接数据库&#xff1a; 这里&#xff0c;首先尝试连接一下数据库…

VUE中登录密码显示与隐藏的最简设计——基于iview

目录 VUE中登录密码显示与隐藏的最简设计——基于iview1.背景2.实现最终效果2.1 隐藏密码2.2 显示密码3.实现思路3.1 v-if判断当前密码显示状态3.2 密码隐藏状态3.3 密码显示状态3.4 两种眼睛图标&#xff08;睁眼&#xff0c;闭眼&#xff09;的监听切换密码显示状态事件4.小结…

利用HashSet解决无重复字符的最长子串问题

利用HashSet解决无重复字符的最长字串问题 HashSet是基于HashMap来实现的&#xff0c;是一个不允许有重复元素的集合&#xff0c;但是HashSet允许有空值。另外HashSet是无序的&#xff0c;即不会记录插入的顺序。在线程安全方面&#xff0c;它也不是线程安全的&#xff0c;如果…