以前也遇到过。但都不知道怎么就解决了。

今天费了一番功夫找到了最佳解决方案。

对于一些复杂的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]; } }

以上内容完全自己在网上找的一些解决方案。然后理解出来的心得。

保存下来,以后要用的时候记得来找

最新文章

  1. WINDOWS系统下MYSQL安装过程中的注意事项
  2. Activiti5.10简易教程一
  3. 【C-数据类型 常量 变量】
  4. Android 全屏显示
  5. 《C++ Primer 4th》读书笔记 第12章-类
  6. Redis实战之征服 Redis + Jedis + Spring (一)
  7. Objective-C中的copy协议
  8. 最简单的内核模块hello world
  9. 【codevs】2776寻找代表元
  10. Java判断字符串是否为空的三种方法
  11. (Problem 42)Coded triangle numbers
  12. iOS coreData
  13. Andrew Ng机器学习课程笔记--week6(精度&召回率)
  14. ZOJ 1489 HDU1395 2^x mod n = 1 数学
  15. 【20171027中】alert(1) to win 第13,14,15,16题
  16. JS对象属性命名规则
  17. 转 - .net/c# 使用RabbitMQ
  18. MicroPython教程之TPYBoard v102 CAN总线通信
  19. java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava
  20. vue — 安装并创建vue项目

热门文章

  1. 【原】Redis基本操作
  2. Java笔记(二十六)……IO流上 字节流与字符流
  3. bzoj 1880 [Sdoi2009]Elaxia的路线(最短路+拓扑序)
  4. Android基于XMPP Smack Openfire下学习开发IM(五)连接断开重连
  5. play wav sound
  6. android开发Proguard混淆与反射
  7. [Javascript] Drawing Paths - Lines and Rectangles
  8. linux atime ctime mtime
  9. SecureCRT 中 python 命令行使用退格键(backspace)出现 ^H 解决办法
  10. 使用DrawerLayout实现QQ5.0侧拉菜单效果