UITableViewCell复用后,label上的字重叠的问题
很多朋友觉得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上的字重叠的问题相关推荐
- echarts关系图配置,及超出范围处理 + a、b两个节点互相指向时线上的字重叠问题
情景:由于人物关系复杂,可以有几个 --几十个(上百个),所以固定范围内(如:500高度)可能放不下,或者太空.所以可以根据node节点(也可根据其他判断条件)来动态修改 div / canvas高度 ...
- 发布出来的APK部分Label上的字被压扁
项目使用Unity4.7.1配合NGUI3.5.5开发,发布出来的APK,发现部分Label上的字压扁了,两个字会出现重叠的情况,对比之后发现,被压扁的字Label的一个属性设为Bold,修改为Nor ...
- 如何在label上显示字_如何地图上标注店面_新开的店铺要怎样上地图显示_怎么将公司标记在地图...
新开的店铺商铺商家商户企业工厂怎么标注地图位置?如何地图上标注店面_怎么将店铺标记在地图_新开的店铺要怎样上地图显示?还没有办好营业执照可以做?您可能会有很多地图疑问?请直接联系腾图通地图服务公司为您 ...
- 怎么让word在分页后在下一页第一行自动加上上一页未结束的标题,并在后加一个“续”字?如图:
怎么让word在分页后在下一页第一行自动加上上一页未结束的标题,并在后加一个"续"字?如图: 比如图片里的 八. 财务报表项目注释 - 续 租赁 - 续 这几个字 能让word分页 ...
- (转)UITableViewCell复用问题
列举两个场景对比一下,也许tableviewcell的复用就很清晰明了了. 1, 1 - (UITableViewCell *)tableView:(UITableView *)tableView c ...
- html打印预览出现重叠,求高手解答:在WORD 中插入EXCEL表格,打印出现字重叠的问题...
求高手解答:在WORD 中插入EXCEL表格,打印出现字重叠的问题以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 求高手 ...
- 电影票上的字是怎么消失的?
一切探究和追查都来源于我收藏电影票的特殊癖好. 几年前的电影票字迹已经模糊,为了更好的保存票根,让回忆有据可查,根据自以为是的博物学知识,我做了一个最朴素的决定: 把电影票贴上透明胶带"塑封 ...
- opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑
opencv将图像处理之后显示在label上(Mat转化为qimage)转换之后label显示全黑 1.本实验要完成的功能:利用opencv将原图像灰度处理,然后显示在label上 2.图像处理程序: ...
- word格式刷刷完格式后公式上凸了怎么办?
标题:word格式刷刷完格式后公式上凸了怎么办? 背景:计算机系统为winXP,word版本为office2007,公式编辑器为MathType6.7 ======================== ...
最新文章
- hive定时清洗至mysql_hive,sqoop定时执行脚本举例
- android-创建流式布局,并修改最后一行的最后一个view
- [bzoj1025][SCOI2009]游戏 (分组背包)
- 一文带你了解Java Agent
- 从Linux终端管理进程:10个你必须知道的命令
- java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
- Java架构-CAS SSO单点登录框架介绍
- 利用Easy-Rules实现动态业务规则
- java编译系统找不到指定路径_为什么我在E盘安装了java,命令指示符输入后却提示系统找不到指定路径?...
- BIOS int 10H中断介绍
- java 502错误_Spring Boot连接超时导致502错误的实战案例
- C语言 | 杭州电子科技大学ACM | 求和问题
- 2908. Annoying painting tool
- 工业物联网·能耗监控智慧空调接入华为云解决方案
- WSUS客户端更新补丁失败(1)
- 【C++】C++实战项目机房预约管理系统
- Sentinel-高可用流量管理框架
- 计算机的喇叭接口显示的英文,电脑上喇叭图标不见了怎么找到(电脑不显示扬声器图标的解决方法)...
- 霍常亮app淘宝客开发视频教程第5节
- 再见,2020。你好,2021!
热门文章
- 最详细的idea创建webservice教程
- Native memory allocation (mmap) failed to map 142606336 bytes for committing reserved memory.
- java查询blob字段出错_java获取oracle数据库blob图片字节流显示到jsp页面出错bogus marker length...
- 四核处理器_你知道双核和四核CPU有什么区吗?
- 打印机安装后显示服务器图标,WIN10系统已安装打印机却看不到图标的处理教程...
- 中电信联手酷派打造千元智能手机新标杆
- 50岁学计算机专业,分享一下我教五十多岁的妈妈学电脑的心得吧
- 2022-2027年中国大枣及深加工行业发展监测及投资战略研究报告
- 没有投屏标志怎么投屏_腾讯视频没有投屏标志
- 怎样才能画好漫画中怒的表情?