很多朋友觉得UITableViewCell复用问题很难处理,百思不得其解,甚至有很多朋友自己琢磨很久也不明白个究竟。现在分享一下个人的一些经验,希望对大家有帮助,如果有好的意见或者有不同的看法也可以提出来,让我们一起分享一起进步,知识只有在分享的情况下才能实现它的最大价值。好了,废话少说,直奔主题了。列举两个场景对比一下,

例1:
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  static NSString *CellIdentifier = @"cell1";
  UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
  cell = [UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  UILabel *labelTest = [UILabel alloc]init];
  [labelTest setFrame:CGRectMake(2, 2, 80, 40)];
  [labelTest setTag:1];
  [cell addSubview:labelTest];
  }
  UILabel *label1 = (UILabel*)[cell viewWithTag:1];
  [label1 setText:[self.tests objectAtIndex:indexPath.row];
  return cell;
  }
例2:
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
  static NSString *CellIdentifier = @"cell1";
  UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
  cell = [UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  }
  UILabel *labelTest = [UILabel alloc]init];
  [labelTest setFrame:CGRectMake(2, 2, 80, 40)];
  [labelTest setBackgroundColor:[UIColor clearColor]; //之所以这里背景设为透明,就是为了后面让大家看到cell上叠加的label。
  [labelTest setTag:1];
  [cell contentView]addSubview:labelTest];
  [labelTest setText:[self.tests objectAtIndex:indexPath.row];
  return cell;
  }
  当你上下来回滑动tableview的时候就会看到区别,第一种程序界面不会出现异常,但是第二种就不是了,会出现字体叠加现象,其实更确切的是多个label的叠加。为什么呢,因为在tableview刷新的时候,如果那个位置已经有现成的cell,它就不会再重新请求资源生成新的cell了,而是复用原来的cell。所以对于对于第一种,代码的思路是第一次在cell不存在的时候生成cell,定义cell样式,以后不管是刷新还是重新请求还好,它都只是复用已生成的cell。而第二种思路是,在cell不存在的时候,请求生成cell,然后给cell上添加label,刷新的时候,会复用已有的cell,但是会重复添加label,故造成重叠的现象。

UITableViewCell复用后,label上的字重叠的问题相关推荐

  1. echarts关系图配置,及超出范围处理 + a、b两个节点互相指向时线上的字重叠问题

    情景:由于人物关系复杂,可以有几个 --几十个(上百个),所以固定范围内(如:500高度)可能放不下,或者太空.所以可以根据node节点(也可根据其他判断条件)来动态修改 div / canvas高度 ...

  2. 发布出来的APK部分Label上的字被压扁

    项目使用Unity4.7.1配合NGUI3.5.5开发,发布出来的APK,发现部分Label上的字压扁了,两个字会出现重叠的情况,对比之后发现,被压扁的字Label的一个属性设为Bold,修改为Nor ...

  3. 如何在label上显示字_如何地图上标注店面_新开的店铺要怎样上地图显示_怎么将公司标记在地图...

    新开的店铺商铺商家商户企业工厂怎么标注地图位置?如何地图上标注店面_怎么将店铺标记在地图_新开的店铺要怎样上地图显示?还没有办好营业执照可以做?您可能会有很多地图疑问?请直接联系腾图通地图服务公司为您 ...

  4. 怎么让word在分页后在下一页第一行自动加上上一页未结束的标题,并在后加一个“续”字?如图:

    怎么让word在分页后在下一页第一行自动加上上一页未结束的标题,并在后加一个"续"字?如图: 比如图片里的 八. 财务报表项目注释 - 续 租赁 - 续 这几个字 能让word分页 ...

  5. (转)UITableViewCell复用问题

    列举两个场景对比一下,也许tableviewcell的复用就很清晰明了了. 1, 1 - (UITableViewCell *)tableView:(UITableView *)tableView c ...

  6. html打印预览出现重叠,求高手解答:在WORD 中插入EXCEL表格,打印出现字重叠的问题...

    求高手解答:在WORD 中插入EXCEL表格,打印出现字重叠的问题以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 求高手 ...

  7. 电影票上的字是怎么消失的?

    一切探究和追查都来源于我收藏电影票的特殊癖好. 几年前的电影票字迹已经模糊,为了更好的保存票根,让回忆有据可查,根据自以为是的博物学知识,我做了一个最朴素的决定: 把电影票贴上透明胶带"塑封 ...

  8. opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑

    opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑 1.本实验要完成的功能:利用opencv将原图像灰度处理,然后显示在label上 2.图像处理程序: ...

  9. word格式刷刷完格式后公式上凸了怎么办?

    标题:word格式刷刷完格式后公式上凸了怎么办? 背景:计算机系统为winXP,word版本为office2007,公式编辑器为MathType6.7 ======================== ...

最新文章

  1. hive定时清洗至mysql_hive,sqoop定时执行脚本举例
  2. android-创建流式布局,并修改最后一行的最后一个view
  3. [bzoj1025][SCOI2009]游戏 (分组背包)
  4. 一文带你了解Java Agent
  5. 从Linux终端管理进程:10个你必须知道的命令
  6. java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
  7. Java架构-CAS SSO单点登录框架介绍
  8. 利用Easy-Rules实现动态业务规则
  9. java编译系统找不到指定路径_为什么我在E盘安装了java,命令指示符输入后却提示系统找不到指定路径?...
  10. BIOS int 10H中断介绍
  11. java 502错误_Spring Boot连接超时导致502错误的实战案例
  12. C语言 | 杭州电子科技大学ACM | 求和问题
  13. 2908. Annoying painting tool
  14. 工业物联网·能耗监控智慧空调接入华为云解决方案
  15. WSUS客户端更新补丁失败(1)
  16. 【C++】C++实战项目机房预约管理系统
  17. Sentinel-高可用流量管理框架
  18. 计算机的喇叭接口显示的英文,电脑上喇叭图标不见了怎么找到(电脑不显示扬声器图标的解决方法)...
  19. 霍常亮app淘宝客开发视频教程第5节
  20. 再见,2020。你好,2021!

热门文章

  1. 最详细的idea创建webservice教程
  2. Native memory allocation (mmap) failed to map 142606336 bytes for committing reserved memory.
  3. java查询blob字段出错_java获取oracle数据库blob图片字节流显示到jsp页面出错bogus marker length...
  4. 四核处理器_你知道双核和四核CPU有什么区吗?
  5. 打印机安装后显示服务器图标,WIN10系统已安装打印机却看不到图标的处理教程...
  6. 中电信联手酷派打造千元智能手机新标杆
  7. 50岁学计算机专业,分享一下我教五十多岁的妈妈学电脑的心得吧
  8. 2022-2027年中国大枣及深加工行业发展监测及投资战略研究报告
  9. 没有投屏标志怎么投屏_腾讯视频没有投屏标志
  10. 怎样才能画好漫画中怒的表情?