关于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。
网友评论