问题本质:  
因为你要添加的子视图并不是在自定义的cell中实现的,而是根据系统给的UITableViewCell这个类创建的实例,每次进图 cellForRow方法都会创建一个cell,每次都要创建一个子视图添(button,label之类的)加进去,会给占用很大的内存,所以采用了复 用的方法,但是问题就来了,当cell超出界面,从队列中拿过来复用的时候,其中子视图的内容并没有消除,这样你会原来的基础上再创建一个子视图添加上去 遮住了原来的视图,一般视图都是透明的这样的话就变成了一层层的叠加.
解决方法:

下面给出得是一个label添加到cell中的例子

将具体的视图实例,添加到cell的contentView中

注意:如何在父视图中标识某个子视图?

step1:在添加子视图时,指定tag值(大于0)

step2:为了找出这个子视图,通过调用父视图的 viewWithTag 方法,就可以找到指定的视图

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell1" ];

if (cell==nil) {

cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell1"];

}

//把索引给系统  forIndexPath:indexPath为注册准备的,如果要自己创建的话,就把这个去掉

// cell.detailTextLabel.text=@"detail.. ";

// cell.imageView.image=[UIImage imageNamed:@"icon1.png"];

//cell.textLabel.text=@"helo";

//先按照tag值试着去Cell中找,是否有标签

UILabel  *label=(UILabel*)[cell.contentView viewWithTag:1];

if (label==nil) {//如果没找到再新建

label=[[UILabel alloc]init];

//为label设置tag值

label.tag=1;

label.textColor=[UIColor redColor];

label.font=[UIFont italicSystemFontOfSize:40];

label.frame=CGRectMake(0, 0, cell.bounds.size.width, 42);

label.textAlignment=NSTextAlignmentCenter;

[cell.contentView addSubview:label];

}

label.text=[NSString stringWithFormat:@"   %ld", indexPath.row];

return cell;

}

关于cell中添加子视图 复用重叠问题的解决方法的更多相关文章

  1. iOS开发-在表单元中添加子视图

    #import <UIKit/UIKit.h> @interface NameAndColorCellTableViewCell : UITableViewCell @property(c ...

  2. ViewPager中的子Activity无法响应OnActivityResult的解决方法

    ViewPager子Activity通过startActivityForResult()跳转至OtherActivity,OtherActivity回传结果由ViewPager所在的父Activity ...

  3. 解决UIViewController中添加子控制器viewWillAppear不调用问题

    问题描述: 我在UICollectionViewController中添加子控制器数组, 并在cellForItem中把子控制器数组中对应的控制器对应的view添加到了UICollectionView ...

  4. UIScrollView中添加一个视图,实现让其始终固定在某个位置

    ScrollView中添加一个视图,实现让其始终固定在某个位置,如最底部的位置.方法是自定义一个继承UIScrollView,重写它的layoutSubviews方法.代码如下: #import &q ...

  5. [iOS]在NavigationController中的ScrollView中的子视图都会下移64个像素

    情况是这种: 我有一个UINavigationController,设置为self.window的root视图, 然后有一个UIVIewController是UINavigtionController ...

  6. treeview自动从表中添加标题和列值做目录的方法2

    treeview自动从表中添加标题和列值做目录的方法2,该方法是借鉴万一老师的 http://www.cnblogs.com/del/archive/2008/05/15/1114450.html 首 ...

  7. 在MonoGame中SetRenderTarget会把后备缓冲区清除的解决方法

    在MonoGame中SetRenderTarget会把后备缓冲区清除的解决方法: 在构造函数中添加事件:graphics.PreparingDeviceSettings += Graphics_Pre ...

  8. jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法

    jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法 工作中用到一个具有多选功能的easyui-datagrid在处理cell的点击事件时,不同 ...

  9. 【Qt开发】QScrollArea添加布局后没有出现滚动条的解决方法

    [Qt开发]QScrollArea添加布局后没有出现滚动条的解决方法 标签:[Qt开发] 说明:尝试利用滚动区域显示多张图片,为了能够动态地往滚动区域贴图,为滚动区域设置了布局,然后通过布局来添加wi ...

随机推荐

  1. JQuery(上)

    1.流行的JavaScript类库   --  框架.插件 )为了简化 JavaScript 的开发, 一些 JavsScript 库诞生了. JavaScript 库封装了很多预定义的对象和实用函数 ...

  2. mysql同时update多行

    当我们只更新一个字段时的语法如下: UPDATE mytable     SET myfield = CASE other_field         WHEN 1 THEN 'value'     ...

  3. MyEclipse中SVN的使用方法

    来至转载  -----新浪博客 MyEclipse中的SVN操作手册 1.导入项目 点击工具栏上的[File-Import],进入下图

  4. 定时器——Cocos2d-x学习历程(十一)

    1.定时器 利用场景.层和精灵等游戏元素,我们可以构建游戏的框架,但是此时的游戏仍然是静止不动的.在一切游戏中,游戏的状态都会随着时间的流逝而改变,同时我们还需要定时进行一些逻辑判断,例如鱼和子弹的碰 ...

  5. 独立版Jexus

    一:下载资源包 把 jexus压缩包下载到linux临时文件夹中. cd /tmp wget linuxdot.net/down/jexus--x64.tar.gz 二,解压: tar -zxvf j ...

  6. Arduino周边模块:LED部件

    Arduino周边模块:LED部件 Arduino周边模块:LED部件 1. LED的使用 LED的原理: LED是会发光的二极管,它具有单向导电性.两端加上正向电压,即能将电能转化为光能. 正向电压 ...

  7. 正选反选JS

    JS <script> window.onload=function(){ var oTher=document.getElementById('other'); var oCheck=d ...

  8. 安装GNUstep并运行第一个objc程序

    在windows环境下安装GNUstep,运行objective-c程序,今天试了一下,记录一下操作步骤, 1,登陆http://ftpmain.gnustep.org/pub/gnustep/bin ...

  9. cookie记录用户的浏览商品的路径

    在电子商务的网站中,经常要记录用户的浏览路径,以判断用户到底对哪些商品感兴趣,或者哪些商品之间存在关联. 下面将使用cookie记录用户的浏览过的历史页面.该网站将每个页面的标题保存在该页面的$TIT ...

  10. WinSetupFromUSB 使用教程

    WinSetupFromUSB 是个功能非常强大的自启动U盘制作工具,可以完成WinXP/Vista/Win7的U盘安装,完成同盘多Windows安装源的U盘制作以及Linux 启动安装等功能.用Wi ...