关于tableview使用多个cell的注意事项

好久不写ios了,最近做了一个ios项目,做过ios的人都知道,tableview基本每个人都会用到,也都会重写。

今天在使用多个样式的tableview的使用,偷了个懒CV一下,本来应该同一页面本来是同一个cell,结果同一个页面出现了不同的cell。

终于发现是因为cell的缓存池问题,我们都知道tableview为了避免重复创建cell的问题,使用了缓存池机制,也就是一个屏幕最多会展示几个cell,那么tableview就会创建几个cell,然后重复利用,也就是

    static NSString *ID = @"FlishTableViewCel";
    FlishTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if (!cell) {
        cell = [[FlishTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell;

关键就出现在了

static NSString *ID = @"FlishTableViewCel";

我把两个cell的ID写成了一个。

所以先加载的会先存储在缓存池中,后加载的会先从缓存池中拿出cell,当数量不够了才会创建新的cell。

你可能感兴趣的:(关于tableview使用多个cell的注意事项)