注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

JC

 
 
 

日志

 
 

iOS TableViewCell  

2016-10-24 16:14:34|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
对于tableview来说,需要重复使用TableViewCell来提高内存使用效率
记录下2种方式来使用TableViewCell
首先iOS系统会维护一个队列来存储看重复使用的TableViewCell对象。
方法一

- dequeueReusableCellWithIdentifier:forIndexPath:                                                

使用该方法有两个步骤(必须保证顺序,否则出错)
1.registerClass:forCellReuseIdentifier: 调用该方法,注册一个table view cell对象
2.调用dequeueReusableCellWithIdentifier:forIndexPath:函数
举例

- (void)viewDidLoad {

    [super viewDidLoad];

//    Register FastSystemLogTableViewCell 注册一个tableview cell,用于dequeueResuableCellWithIdentifier

    [self.tableView registerClass:[FastSystemLogTableViewCell class] forCellReuseIdentifier:kFastSystemLogTableViewCellIdentifier];

}


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

    FastSystemLogTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kFastSystemLogTableViewCellIdentifier forIndexPath:indexPath];

    return cell;

}

方法一


- dequeueReusableCellWithIdentifier:


不需要注册tableviewcell
举例:

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

    FastSystemLogTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kFastSystemLogTableViewCellIdentifier];

    if (cell == nil) {

        cell = [[FastSystemLogTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kFastSystemLogTableViewCellIdentifier];

    }

    if (tableView == self.tableView) {

        cell.logMessage = [self.logMessages objectAtIndex:indexPath.row];

        cell.highLightedText = nil;

    }    

    return cell;

}


总结:

两种方法都可以用,

- dequeueReusableCellWithIdentifier:forIndexPath:  

需要先调用registerClass:forCellReuseIdentifer,后面调用dequeueReusableCellWithIdentifier:forIndexPath系统会自动判断队列是否有重复使用的tableviewcell,有则给,没有则创建

- dequeueReusableCellWithIdentifier:
调用dequeueReusableCellWithIdentifier,队列有可重复使用的tableviewcell则返回,没有返回nil



  评论这张
 
阅读(6)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017