iOS-cell的重用机制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS-cell的重用机制相关的知识,希望对你有一定的参考价值。

    对于像我们这样的初学者来说,cell重用机制是很难理解的内容,所以我们不一定非得理解,会用就行

    cell的重用机制:当我们使用tableView时,系统只会创建屏幕中显示的cell的个数+1,当cell滑出可视范围时,会将此cell放出重用池,当有新的cell滑进可视范围时,先到重用池里去找,找不到就创建,找得到就直接用,所以会用串(有时候不会串<cell的个数小于3>)

    防止用串的方法:1、设置标签2、不用重用池,直接创建3、拿出来用之前,清空原内容

  • 一、设置标签(这是最常用的)

              cell.textLabel.text = array[indexPath.row];

              在哪一行,那就只让他用对应的一个,这样就不会用串了

  • 二、不用重用池,直接创建(这就很好理解了)

              就是不用下面这句代码,每次到这个cell,他都会重新创建一次,既耗内存有浪费时间,就跟SDWeImage一个样。

              UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];//根据重用标识,到重用池找到对应的cell

  • 三、拿出来用之前,清空原内容

              这个还是在下面方法中加一个条件判断就行了if (cell != nil) 

              -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{}

以上是关于iOS-cell的重用机制的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之 cell重用后内容错乱

iOS学习笔记(4) — UITableView的 重用机制

iOS开发-自己定义重用机制给ScrollerView加入子视图

IOS之TableViewCell重用机制避免重复显示问题

iOS-TableView重用原理和注意点

iOS-UITableView重用机制