关于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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容