UITaleView 重用机制

TableView的重用机制,为了做到显示和数据分离,IOS tableView的实现并且不是为每个数据项创建一个tableCell。而是只创建屏幕可显示最大个数的cell,然后重复使用这些cell,对cell做单独的显示配置,来达到既不影响显示效果,又能充分节约内容的目的。
即创建若干个cell 其它的会从一个叫重用队列里取出来然后使用 ,tableView 调用dequeueReusableCell这个方法。
一、重用写法有两种
1、注册

// 注册写在创建 UITableView的地方 
 [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
//取写在返回单元格的方法里
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

2、在cell的创建方法里从重用队列里根据标识符取出cell,然后判断,队列里是否有cell,如果没有创建一个cell 并且加了标识符,然后return cell。如果有则直接返回。此种可以设置cell的样式。

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    if (cell ==nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
    }
 return cell;

重点:为了实现数据和cell彻底分离。需要删除重用的cell的所有子视图,从而得到一个没有特殊格式的cell,供其他cell重用。在return cell之前:

  NSArray  *arr =  cell.contentView.subviews;
    for ( UIView *vi  in arr) {
        //把cell的contentView上面所有的子视图从父类上面移除
        [vi  removeFromSuperview];
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值