当前位置: 首页 > news >正文

微网站开发素材下载 网站样板

微网站开发素材,下载 网站样板,有口碑的南昌网站建设,网站制作前的图片路径我自己在实验中对cell的重用总结如下#xff1a; 非自定义Cell和非自定义cell的复用情况一样#xff1a; 第一次加载创建tableView的时候#xff0c;是屏幕上最多也显示几行cell就先创建几个cell#xff0c;此时复用池里什么都没有开始下滑tableView#xff0c;刚开始滑…我自己在实验中对cell的重用总结如下 非自定义Cell和非自定义cell的复用情况一样 第一次加载创建tableView的时候是屏幕上最多也显示几行cell就先创建几个cell此时复用池里什么都没有开始下滑tableView刚开始滑动时由于第一行没有完全滑出屏幕进复用池时下面的新cell已经显示到屏幕上了所以下方这个新滑出来的cell就是新创建的cell而不是复用的cell复用时也得看新加载的cell和复用池中的备用cell有没有同类型的id没有就不复用然后接着滑动第一个cell就完全出屏幕进入复用池了下面我们接着滑动接着那个需要新显示出来的cell如果和复用池中我们保存的第一个cell是同种id如果是就直接拿来复用如果不是就新创建判断是否能复用和新创建的操作都在cell的编辑函数cellForRowAtIndexPath中上滑tableView和下滑原理基本一致完全出屏幕的入复用池需要新加载到屏幕的cell先看池中有没有同id的cell有了就复用没有就创建。 下面我们讲一个使用cell时需要注意的点 复用时从复用池中取出来的cell可以是已经捆绑过数据或者加过子视图的所以如果有必要要清除数据比如(label的text和remove掉add过的子视图使用tag否则就有可能造成复用后出现显示的内容不符预期的情况比如说我们有一个开始创建id为test的cell我们在执行cell的编辑函数cellForRowAtIndexPath:中有一个判断分支符合某种情况时需要在cell上显示一个button而不符合那种情况的时候就不显示button而恰好我们这个cell符合情况于是就添加了button相关的数据然后显示出了button接着我们滑动了tableView导致我们刚才创建的这个id为test的cell进入了复用池然后再继续下滑的时候有一个新的id为test的cell需要被加载出来于是就查看了复用池发现里面有同id的cell所以就直接拿来复用了复用的时候对里面的数据进行了自己的设定本类好像没什么问题但是恰好这个新cell不符合那个要显示button的条件然后就不会去执行对button添加数据的操作我们预想着这个新cell和之前我们创建的id为test的cell的区别就是新的没有button旧的有button然后两者其他控件也就是数据内容不同比如label的text不一样这些但是实际情况却是这个新创建的cell上面显示的依然存在button和我们预想的不一致其原因就是复用时所取出来的旧cell是已经捆绑过数据且加过子视图的虽然我们新cell创建时没有走对button添加数据的代码但是由于旧cell走过了且向button添加的数据都在所以就导致新cell上面就有一个和旧cell一模一样的button。 这就是复用中可能存在的一个常见的难搞的问题但是解决起来其实也非常简单重点在于避免重用机制出错 以下有三种方法(最推荐第三种 重用机制调用的就是dequeueReusableCellWithIdentifier这个方法方法的意思就是“出列可重用的cell”因而只要将它换为cellForRowAtIndexPath只从要更新的cell的那一行取出cell就可以不使用重用机制因而问题就可以得到解决但会浪费一些空间。 为每个cell指定不同的重用标识符(reuseIdentifier)来解决。重用机制是根据相同的标识符来重用cell的标识符不同的cell不能彼此重用。 NSString *identifier [NSString stringWithFormat:TimeLineCell%d%d,indexPath.section,indexPath.row];在新cell创建走编辑函数cellForRowAtIndexPath:时在里面加一段操作去remove多余的那个子视图或者清除旧数据 而且依我本人之见最好使用清除旧数据而不是remove多余的子视图。因为这个正在新建的cell后面也许也会进入自动释放池而且它到时候也可能会被拿来复用如果那个复用它的cell刚好需要显示button而这个被复用的cell连button这个视图都没添加到cell上那直接向button添加数据时程序就会crash所以清除所有数据是不错的选择反正每次执行编辑函数cellForRowAtIndexPath:时都会为对应行组的cell重新添加那些子视图上的数据相当于覆写了旧数据我们只需要在所有的重新添加数据操作之前讲被复用的cell上子视图的数据全删了就行。 但是如果偏要走remove子视图的方法也不是不行我们可以巧妙点从复用池取出来要被复用的cell之后直接重新alloc初始化一下这个被复用的cell相当于之前清空了原本保存的所有子视图的全部数据而原本添加到cell上的子视图都还在只是没有数据不显示罢了这也是很好的手段。
http://www.hkea.cn/news/14589964/

相关文章:

  • 南昌市网站建设公司制作做的网站如何上传网上
  • 广州10打网站服务商北京建设工程造价信息网
  • 用vs2010做的网站的源码济南网络营销服务公司
  • 建设网站的方案钢结构加工
  • 免费开源网站注册劳务公司注册条件及费用
  • 如何自建公司网站wordpress自带搜索
  • 阜城县网站建设报价企业做一个网站多少钱
  • 如何申请做网站家居企业网站建设行情
  • 织梦网站是不是容易做seo东莞企业网站咨询
  • 刘洋网站建设 够完美wordpress的支付插件
  • 网站建设与管理实践报告总结福利博客wordpress
  • app对接网站登录要怎么做单页面推广网站模版
  • 机械做卖产品网站做企业平台的网站
  • 基于jsp的购物网站开发wordpress百度分享
  • 怎么建立购物网站怎么在百度上做广告
  • 无锡嘉饰茂建设网站有什么网站可以做深圳初二的试卷练习
  • 中国建设银行北京分行门户网站公告pi币最新消息
  • 菏泽做网站建设找哪家太和网站建设
  • wordpress怎么设置语言设置中文抖音seo优化软件
  • 宝安设备网站设计修改wordpress的首页
  • 天津网站建设招标网页微信版登陆看不到聊天记录吗
  • 青之峰网站建设网站建设延期报告
  • 如何创建自己公司网站代码外包平台
  • 会小二也是做会议网站的如何免费建设自己稳定的网站
  • 营销网站的渠道构成基本包括wordpress文章分页共多少页
  • 要怎么才能建设一个网站北京建网站公司怎么样
  • 兰州网站建设兰州wordpress没有权限
  • 绵阳做手机网站广州市番禺区建设局网站
  • 网站建设服设计一个外贸网站需要多少钱
  • 90设计网站几次是什么意思微商管理系统