UITableViewCell重用机制

不羁的心 提交于 2020-03-23 07:15:07

//重用  

6.0以后dequeueReusableCellWithIdentifier: forIndexPath:indexPath 取代了

dequeueReusableCellWithIdentifier  并少写了!cell代码块  但是要和register并用

[tb  registerClass:[TableViewCellclass] forCellReuseIdentifier:identifier];

TableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:identifierforIndexPath:indexPath];

 

//不重用  浪费资源次之

NSString*iden = [NSStringstringWithFormat:@"ide%ld",(long)indexPath.row];

    TableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:iden];

    if(!cell) {

        cell = [[TableViewCellalloc] initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:iden];

    }

.m文件需初始化initWithStyle:  重写layoutSubviews

 

//不重用   最浪费资源

    TableViewCell*cell = [tableView cellForRowAtIndexPath:indexPath];

    if(!cell) {

        cell = [[TableViewCellalloc] initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:iden];

        cell.label.text= iden;

        cell.textLabel.text= iden;

    }

 

//nib创建cell自适应行高   条件只限于一个label. numberOfLines = 0

[tb registerNib:[UINibnibWithNibName:@"TableViewCell"bundle:nil] forCellReuseIdentifier:identifier];

TableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:identifierforIndexPath:indexPath];

tb.rowHeight= UITableViewAutomaticDimension;

tb.estimatedRowHeight= 80; 

cell.m文件无需任何操作

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!