美文网首页IOS开发程序员iOS Developer
关于TableViewCell的重用机制

关于TableViewCell的重用机制

作者: 晨阳聊电影 | 来源:发表于2016-05-05 10:12 被阅读258次

          关于tableView的重用机制,不用重用机制的话,会很消耗内存,并且造成tableView滑起来会有卡顿现象,所以用重用机制是非常有必要的!!

    具体的代码如下:

             以下是我自己对cell 的重用的理解,给大家分享这里,先说一下重用是如何实现的,加入我们有一个很长的tableview,假设是100行,但在我们设计的行高情况下,屏幕 只能显示4行,所以,当加载view的时候,实际我们需要创建5各cell,只这4个cell是静态显示,当我们用手指向上滑动即下方的第5个cell向上滑进界面的过程中,我们发现第一行的cell会滑出界面,当滑出后,第一行这个cell对象会被放到对应重用标示符重用队列中,第5行显示在屏幕上。当我继续向上滑动,第二行的cell对象同样会放在重用队列中,第6个cell将获得重用队列中的一个cell,这样,这样在后面的重用中就就可以正常的工作起来了,可以很好的控制内存。

    staticNSString*ID=@"id";  

    这个是重用标识符

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellTableIdentifier];

    意思是定义一个cell,在tableview中的可重用队列中寻找有CellTableIdentifier标识的UITableViewCell,以进行重用。

    这个Identifier可以由我们自由定义成一些字符串。当然,如果在队列中有这样的UITableViewCell,那么则返回它给 cell,若没有,则返回nil给cell。因为我们在写程序时经常需要用到好几个表格,每个表格中的cell布局都不一样,所以我们需要将在同一个表格的cell(布局一样)进行标记Identifier,这样,在重用的时候可以得到匹配的cell。当有多个表格是可以定义多个标记。

    if(cell ==nil) {

    cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:ID];

    }

    若返回的是nil,即cell==nil,则我们需要分配空间并初始化一个cell,而且需 要关联reuseIdentifier,以便后面重用的时候能够根据Identifier找到这个cell,若cell不为nil,则重用成功,并可 return此cell。

    如有差错或疏漏,也望各位高手指出,万分感谢!!

    相关文章

      网友评论

        本文标题:关于TableViewCell的重用机制

        本文链接:https://www.haomeiwen.com/subject/zqrdrttx.html