UITableView的重用

本文详细介绍了UITableView在显示大量数据时如何通过重用机制减少内存消耗。解释了仅需创建屏幕可见数量+1个cell,并在cell离开可视区域时将其放入重用队列,当需要显示新的cell时优先从队列中获取。

在tableView上显示数据时, 我们需要创建cell来显示每一行的具体数据,当一个tableView数据量较大的时候,连续地alloc出cell会占用大量的内存,这时候就引出了tableView的重用队列。
原理:
只需创建屏幕所能显示的cell数+1个cell, 当某个cell完全出屏幕时, 即加入重用队列;
 当某一行即将显示到屏幕时, 需要一个cell来显示内容,这时它不会马上创建而是会先去重用队列找是否有可用的cell,如果有相同标记的cell,则可以直接拿来用,否则则需要重新创建 。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //  1.声明一个cell的标记
    static NSString *cell_id = @"cell_id";
    //  2.创建UITableViewCell,并置空
    UITableViewCell *cell = nil;
    //  3.到重用队列中查找, 是否有可用的cell
    cell = [tableView dequeueReusableCellWithIdentifier:cell_id];
    //  4. 如果没有找到可重用的cell,就只能自己创建了
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cell_id] autorelease];
    }
    //  5.可以正常使用
    cell.imageView.image = [UIImage imageNamed:@"angel"];
    
    cell.textLabel.text = (_dic[_keyArray[indexPath.section]])[indexPath.row];
    
    //  6.返回cell
    return cell;
}  
posted on 2014-05-27 13:26 和果子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liuyu521/p/3754911.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值