UITableView使用简介

UITableView是个使用很广的控件,在使用一段时间之后,有了些理解,在此做一些记录。

一、初始化

先看一段代码。

    UITableView *mTableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] bounds] style:UITableViewStylePlain];
    [mTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:identifier]; // 注册一个类以供创建table cells使用
    mTableView.delegate = self;
    mTableView.dataSource = self;
代码的第二行是ios6.0以后的东西,注册一个UITableViewCell类,是配合接下来这段代码使用的。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }

    cell.textLabel.text = @"表格测试";
    
    return cell;
}

准确来说,是配合这一句代码使用的。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

[tableView dequeueReusableCellWithIdentifier:identifier]的返回值是id,

如果tableview里面有能够reuse的cell,则返回一个cell,这就ok了。

如果tableview里面没有能够reuse的,那么就返回一个nil。这样cell就是一个nil,因此,我们得做一个判断,如果cell为空,利用这一句代码

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];

初始化一个。当然,这是在之前我没有注册过cell的情况下。

好了。现在我一开始注册了一个cell,那么如果tableview里面有能够reuse的cell,则返回一个cell,这跟之前一样。

但是如果tableview里面没有能够reuse的,那么就会调用initWithStyle: reuseIdentifier: 这个方法,自动给我生成一个cell。

说白了,如果之前注册了的话,就能把if那个判断给省了。至于这种方法有没有复用cell,这就不太清楚了,按道理是复用了。以后有时间再了解。我觉得还是先用原来的方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值