UItableViewCell的复用机制,原理解答

背景知识

今天在看iphone开发秘籍的时候,遇到这个问题,就仔细的深入了一下,通过测试,获取了一些自认为还不错的结论,希望对大家在cell复用方面遇到的一些问题会有所帮助。本篇文章只讲原理,对于如果对cell做界面,不深入讲述。鉴于我的表达能力有限,可能会有我自己清楚,但是却说不清楚的地方,如有问题,留言给我。

问题介绍

UITableView在界面的编程用的甚多,iphone开发也三月有余了,每次用到cellForRowAtIndexPath的委托方法的时候,都是直接copy代码,自己略加一些界面的修改,对于cell的标示符都是static NSString* identifier = @"cell";然后调用dequeueReusableCellWithIdentifier方法获取cell,如果cell为空,再调用[[[UITableViewCellalloc]initWithStyle方法新创建一个,根本没有考虑过更深一些的东西。为了讲解清楚,现放上一段代码,代码copy自iphone开发秘籍,本人为了讲解,略加修改。以下所有讲解均依照此代码进行,因此,如果您希望能够透彻的了解cell的复用机制,建议实际运行以下,跟着讲解,查看效果。代码只有tableVIew的委托方法,因此您需要自己创建工程,把这些委托方法加进去。

代码详解

下文一共四个委托方法,表明tableView有1个section,32行,且高度为58。关于tableView的高度那个委托方法的返回的高度值,建议最好自己运行程序查看以下,最终达到一页的界面显示8个cell,第8个cell显示一半也行,但是不能显示9和7个cell。我这里之所以为58,由于(480 - 44)/ 58 为7.5 的样子,其中44为navigationBar的高度,480为屏幕的高度。总之,我们需要达到的效果是一页显示7个多的cell。还有那个icon.png需要自己准备了,要把它显示出来。是不是很麻烦呀?没办法,谁让我们在获得知识呢,知识总是需要点功夫的。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)aTableView 
{ 
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值