uitableview的重用重叠问题
以前也遇到过。但都不知道怎么就解决了。
今天费了一番功夫找到了最佳解决方案。
对于一些复杂的cell 从来都是用自定义的方法,但是如果复杂的cell里面内容多了。特别是图片加载,那难免会出现重叠重用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//初始化字典
NSDictionary *dict = [[NSDictionary alloc] init];
//赋值字典
dict = table1arr[indexPath.row];
//标示符
static NSString *cellIdentifier = @"SetUpCell";
SetUpCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"SetUpCell" owner:self options:nil] lastObject];
}
//cell的内容
if(indexPath.row != 4)
{
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
[cell reloadData:dict];
return cell;
}
自定义cell代码
- (void)reloadData:(NSDictionary*)dict
{
//赋值前先清空值。
//如果是创建的控件可以nil 或者 removeFromSuperview 这样就可以避免重用旧值,导致重用重叠
_image.image = nil;
lbl.text = nil; [_image setImage:[UIImage imageNamed:[dict objectForKey:@"image"]]]; lbl.text = [dict objectForKey:@"label"]; if ([[dict objectForKey:@"label"] isEqualToString:@"接受组邀请"]) { _centerLine.constant = -15; UILabel *lbl1 = [[UILabel alloc] init];
lbl1.frame = CGRectMake(43, lbl.zl_y + lbl.zl_height + 20, kScreenWidth - 50, 20);
lbl1.text = @"若你开启接受组邀请,将允许收到来自其他组的邀请";
lbl1.font = [UIFont systemFontOfSize:11.0];
lbl1.textColor = [UIColor grayColor]; UISwitch *sw = [[UISwitch alloc] init];
sw.frame = CGRectMake(kScreenWidth - 70, 10, 15, 5);
sw.selected = YES;
sw.on = YES;
[sw addTarget:self action:@selector(swselected:) forControlEvents:UIControlEventEditingChanged];
[self addSubview:sw]; [self addSubview:lbl1]; } }
以上内容完全自己在网上找的一些解决方案。然后理解出来的心得。
保存下来,以后要用的时候记得来找
uitableview的重用重叠问题的更多相关文章
- iOS学习笔记(4)— UITableView的重用机制
UITableView中的cell是动态的,在使用过程中,系统会根据屏幕的高度(480)和每个cell的高度计算屏幕中需要显示的cell的个数.比如,cell高度为90.那么480 / 90 = 5 ...
- iOS学习笔记(4) — UITableView的 重用机制
iOS学习笔记(4) — UITableView的 重用机制 UITableView中的cell是动态的,在使用过程中,系统会根据屏幕的高度(480)和每个cell的高度计算屏幕中需要显示的cell的 ...
- iOS基础篇(十三)——UITableView(一)重用机制
UITableView是app开发中常用到的控件,功能很强大,常用于数据的显示.在学习UITableView使用之前,我们先简单了解一下: 1.UITableView的重用机制 UITableView ...
- UI之UItableView重用机制的性能问题
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 操蛋的UITableView重用机制
1,背景 你可能会遇见一下情况: 使用UITableView加载数据,比如你的每一个cell上面有一个UITextField,当你在第一个cell的UITextField中写下了内容,开始下滑UITa ...
- IOS开发—UITableView重用机制的了解
引言 对于一个UITableView而言,可能需要显示成百上千个Cell,如果每个cell都单独创建的话,会消耗很大的内存.为了避免这种情况,重用机制就诞生了. 假设某个UITableView有100 ...
- iOS开发之UITableView及cell重用
1.UITanleview有的两种风格 一种是Plain,一种是Grouped,可以从这里设置风格: 他们样式分别如下: Plain: Grouped: 2.tableView展示数据的过程: (1) ...
- tableView中cell的重用机制
如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象,然而OS设备的内存是有限的,这样就将耗尽iOS设备的内存.要解决这个问题,需要提到重用UITable ...
- iOS开发——UI进阶篇(一)UITableView,索引条,汽车数据展示案例
一.什么是UITableView 在iOS中,要实现展示列表数据,最常用的做法就是使用UITableViewUITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳 UIT ...
随机推荐
- [codevs3295]落单的数
题目描述 Description 有n个数(n是奇数),其中n-1个数两两成对,有1个数落单,找出这个数.要求O(n)的时间复杂度,O(1)的空间复杂度 输入描述 Input Description ...
- 页面置换算法(最佳置换算法、FIFO置换算法、LRU置换算法、LFU置换算法)
页面置换产生的原因是:分页请求式存储管理(它是实现虚拟存储管理的方法之一,其中一个特性是多次性-->多次将页面换入或换出内存) 效果最好的页面置换算法:最佳置换算法 比较常用的页面置换算法有:F ...
- hdoj 2 括号配对问题【数组模拟实现+STL实现】
栈遵循先进后出的原则 括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0 ...
- WEB API 用MemoryStream流做下载功能
刚开始把MemoryStream 放在 var streamResult = new MemoryStream(); HttpResponseMessage response = new HttpRe ...
- C#- WinForm获取 当前执行程序路径的几种方法
1.获取和设置当前目录的完全限定路径.string str = System.Environment.CurrentDirectory;Result: C:xxxxxx 2.获取启动了应用程序的可执行 ...
- 一步一步学android控件(之十六)—— CheckBox
根据使用场景不同,有时候使用系统默认的CheckBox样式就可以了,但是有时候就需要自定义CheckBox的样式.今天主要学习如何自定义CheckBox样式.在CheckBox状态改变时有时需要做一些 ...
- [Openstack][Grizzly] Mysql删除僵尸实例
由于某些原因,导致在通过nova delete删除虚拟机后,其task_state 一致处于deleting状态, 但是始终无法删除.由于虚拟机还没有分配到节点等信息,还没有拷贝镜像,所以可以直接从数 ...
- 使用jdom操作xml文件 去除子节点带有命名空间
package com.soft.common; import java.util.HashMap; import java.util.Map; import org.jdom2.Namespace; ...
- 输出数组里面第N大的数
好像有些大公司出过面试题:找出数组里面第N大的数,当然有点变化,但本质部分是这样的. 要求是不能排序,时间复杂度不能超过O(n^2) 思路很多,我暂时就只会快排衍生的那种.如果对快速排序不太熟悉了,建 ...
- [转]把项目从VS2005升级到VS2013
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rangercyh.blog.51cto.com/1444712/1394348 ...