对于像我们这样的初学者来说,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{}