tableViewCell 用注册事件 代替 重用机制

87 篇文章 0 订阅
本文详细介绍了UITableView中的单元格重用机制,包括如何设置重用标识符、注册单元格类或XIB文件,以及如何从重用池中获取并使用单元格。文中还解释了Storyboard与XIB文件在注册过程中的不同。
摘要由CSDN通过智能技术生成

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    

#pragma mark 重用机制

    

    //0.创建标识符

   static NSString *cellID =@"tttt";

    

    //1.从重用队列中获取cell

   UITableViewCell *cell = [tableView

                dequeueReusableCellWithIdentifier:cellID];

    

    //2.判断是否存在,如果不存在,则创建

    

   if (cell == nil) {

        cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:cellID];

    }

    

    //3.使用

    

    cell.textLabel.text =_biggerArrays[indexPath.section][indexPath.row];

    

    

   return cell;

    

    

}




=======================================


//写纯代码注册cell

//    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:reuseID];

    

//可视化storyBoard不需要注册

//可视化 .Xib还是需要注册,注册的是Nib文件,Nib文件就是.Xib文件编译之后的文件。



=======================================


注册步骤:

第一步:设置重用标识符

//1.static修饰的语句,只运行一次,并且不可以被其他文件访问到。(防止干扰其他文件对重用标识符的重复使用产生错误)


//2.const修饰的内容在程序运行期间不可以被修改,保证了cell从重用池里面取出来的是正确对象。


static NSString *const reuseID =@"customReuseIdentifier";


第二步:注册Cell类或者Cell .Nib文件

//有多少个自定义cell就注册几个,这里相当于把这个自定义cell的类放入重用池中。

1、[self.tableViewregisterClass:[MYTableViewCellclass] forCellReuseIdentifier:reuseID];


2、[self.tableViewregisterNib:[UINibnibWithNibName:@"HeadCell"bundle:nil]forCellReuseIdentifier:cell_ID];

//bundle 包的意思:就是我们做完一个App最终要传到AppStore上的一个包,还有不用担心的是,我们上传的这个包,别人下载下来,并不会得到我们的.m/.h文件。

//bundle : nil 就是默认为当前主包mainBundle


第三步:从重用池中直接取并返回

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    CustomCell *cell = [tableViewdequeueReusableCellWithIdentifier:reuseIDforIndexPath:indexPath];

    

   return cell;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值