UITableView中的单元格重用

UITableView通过重用单元格来达到节省内存的目的:通过为每个单元格指定一个重用标识符(reuseIdentifier),即指定了单元格的种类,以及当单元格滚出屏幕时,允许恢复单元格以便重用.对于不同种类的单元格使用不同的ID,对于简单的表格,一个标识符就够了.

假如一个TableView中有10个单元格,但是屏幕上最多能显示4个,那么实际上iPhone只是为其分配了4个单元格的内存,没有分配10个,当滚动单元格时,屏幕内显示的单元格重复使用这4个内存。

如下代码:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier =@"CellIdentifier";
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if(cell==nil){
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    ***//dequeueReusableCellWithIdentifier:方法查找是否有可以重用的单元格,如果没有则使用initWithStyle:reuseIdentifier:方法构造器创建一个可重用的单元格。***
    NSUInteger row=[indexPath row];
    NSDictionary *rowDict=[self.listTeams objectAtIndex:row];
    cell.textLabel.text=[rowDict objectForKey:@"name"];

    NSString *imagePath=[rowDict objectForKey:@"image"];
    imagePath=[imagePath stringByAppendingString:@".png"];

    cell.imageView.image=[UIImage imageNamed:imagePath];
    cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}

注:方法tableView:cellForRowAtIndexPath:UITableViewDataSourse协议中必须实现的方法之一。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值