码迷,mamicode.com
首页 > 其他好文 > 详细

UITableView中的dequeueReusableCellWithIdentifier的方法

时间:2014-06-11 09:52:57      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:style   class   width   使用   数据   string   

在使用UITableView控件的时候,datasource的代理方法经常会使用到下面的方法来加载UITableView的数据显示

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

{

    static NSString *CustomCellIdentifier = @"CustomCellIdentifier";

    DiscountProductCell * cell=  (DiscountProductCell*)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];

    if (cell == nil) {

        NSArray * nib = [[NSBundle mainBundleloadNibNamed:@"DiscountProductCell" owner:self options:nil] ;

        cell = [nib objectAtIndex:0];

    } 

   cell.item = mPushItem;

   cell.selectionStyle = UITableViewCellSelectionStyleNone;

   UIImageView *backgroundView = [[[UIImageView allocinitWithImage:[UIImage imageNamed:@"list"]] autorelease];

    cell.backgroundView = backgroundView;

    UIImageView *accessoryView = [[[UIImageView allocinitWithImage:[UIImage imageNamed:@"ad1"]] autorelease];

    [accessoryView setFrame:CGRectMake(0.0f0.0fCATEGORY_CELL_AC_WIDTHCATEGORY_CELL_AC_HEIGHT)];

    cell.accessoryView = accessoryView;

    return cell;

}

代码中 DiscountProductCell * cell=  (DiscountProductCell*)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];是每个

cellForRowAtIndexPath方法都必须用到的。其中dequeueReusableCellWithIdentifier的意义是什么呢?

tableView实现是这样的,它并不创建所有行,比如你的表格数据有100行,但是屏幕上的空间只够显示10行,那么tableView只会创建10个左右的cell,当你滚动时,有些行会被遮住,这些被遮住的行就会被回收放入它的回收空间,而将要出现的行会首先在回收空间查找是否有空闲的cell,如果找到就使用,这样避免了创建cell带来的开销,节省空间和时间。这时的cell里的内容是旧的,你必需更新它的内容为将要出现的行的内容。

UITableView中的dequeueReusableCellWithIdentifier的方法,布布扣,bubuko.com

UITableView中的dequeueReusableCellWithIdentifier的方法

标签:style   class   width   使用   数据   string   

原文地址:http://www.cnblogs.com/clumsy1006/p/3773074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!