iOS用SegmentController来切换tableView的时候 reloadData会造成数据重复创建 解决办法

把在Cell上面创建的控件放在Cell==nil的判断里面,这样,每次进来就会先判断有没有,就可以避免数据重复创建,导致视图越盖越厚

if (cell==nil) {

cell=[[UITableViewCell
alloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:cellIDD];

self.inviteLabel=[[UILabel
alloc]initWithFrame:CGRectMake(10,5,[UIScreen
mainScreen].bounds.size.width-20,120)];

self.inviteLabel.numberOfLines=0;

self.inviteLabel.text=cell_info.title;

self.inviteLabel.textColor=LABEL_TEXTCOLOR;

int width=100;

int height=40;

self.button=[[UIButton
alloc]initWithFrame:CGRectMake([UIScreen
mainScreen].bounds.size.width/2-width/2,120+10,
width, height)];

self.button.backgroundColor=[UIColor
redColor];

[self.button
setBackgroundImage:[UIImage
imageNamed:cell_info.cp]
forState:UIControlStateNormal];

NSLog(@"cell_info.cp:%@",cell_info.cp);

//增加长按手势

UILongPressGestureRecognizer *longPress=[[UILongPressGestureRecognizer
alloc]initWithTarget:self
action:@selector(longPress:)];

[self.inviteLabel
addGestureRecognizer:longPress];

longPress.minimumPressDuration=1.0;

[cell.contentView
addSubview:self.button];

[cell.contentView
addSubview:self.inviteLabel];

cell.backgroundColor=CELL_BACK_COLOR;

}

时间: 2024-07-31 06:07:14

iOS用SegmentController来切换tableView的时候 reloadData会造成数据重复创建 解决办法的相关文章

移动端 ios touchmove滑到边界(浏览器地址拦以以上) touchend失效解决办法

在移动端h5页面:尤其那些全屏幕的盒展示切换页面,当用户无意中将手指滑到了 浏览器地址拦以上(中国移动这快区域):此时,手指已经离开屏幕了,但是ios上无法监听到touchend 事件:toucend监听的回调函数事件直接失效: 该问题只有在实机 上才有:模拟器上,安卓暂时没发现; touchcancel取消事件没啥用: 百度了好久.问了好多人没找到办法:后来突然想到解决办法:move时候 碰到地址拦:直接调用end的回调函数, if(touchs.clientY<2&&isiOS)

iOS 解决cell内容重复的解决办法

UITableView继承自UIScrollview,是苹果为我们封装好的一个基于scroll的控件.上面主要是一个个的UITableViewCell,可以让UITableViewCell响应一些点击事件,也可以在UITableViewCell中加入UITextField或者UITextView等子视图,使得可以在cell上进行文字编辑. UITableView中的cell可以有很多,一般会通过重用cell来达到节省内存的目的:通过为每个cell指定一个重用标识符(reuseIdentifier

iOS开发----Xcode7升级之后插件无法使用与不小心点击Skipbundle的解决办法

小伙伴们在升级了 Xcode7 之后有些插件不能使用了.现在提供如下解决办法: 1. 首先查看 Xcode 的 UUID,在终端执行 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID 会得到一串 UUID 码 2. 找到 Xcode 插件所在的目录 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 选择已安装的插件如

iOS之报错“Cannot create __weak reference in file using manual reference counting”解决办法

解决的办法:在Build Settings--------->Aplle LLVM8.0 - Language - Objectibe-C------------->Weak Reference In Manual Retain Release 设置为YES.

iOS 把数据库文件打包到mainbundle中,查找不到路径的解决办法;以及在删除bundle中文件的可行性

在开发中有时我们需要把数据库文件打包到我们的项目中,一般我们都是在外部用工具生成数据库文件,然后拉入项目中,但是我们在程序中查找改文件时,返回的路径总是nil 解决办法: 原因我们拉入其他资源文件(比如:图片.代码文件等)Xcode都会自动添加到target 的 "Build Phases" 下 "Copy Bundle Resources目录下,但是我们拉过来的数据库文件这里是找不到的,可能是Xcode无法识别这类文件(当我们拉去过来时),所以我们要做的就是把刚才添加的db

iOS tableViewCell plane格式下,接近section边缘不显示分割线却被复用解决办法

今天做公司产品的时候遇到了如题问题,困扰我很长时间,用尽各种办法不能解决,究其原因不知为何,自定义cell低端有view划线的时候,划线一般的显示1像素,而贴着section的显示很少 顶多0.3像素,这个问题很头疼,后来 想到了一个非常好的办法解决: UIImageView *separatorLine = [[UIImageView alloc] initWithFrame:CGRectMake(20.0f*SizeScaleX, 30*SizeScaleY - 1.0f, cell.fra

iOS 自定义页面的切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它.但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换. 自定义导航栏的Push/Pop动画 为了在基于UINavigationController下做自定义的动画切换,先建立一个简单的工程,这个工程的rootViewController是一个

iOS Dev (63) 如何在 TableView 滚动时收起键盘?

iOS Dev (63) 如何在 TableView 滚动时收起键盘? 作者:阿锐 地址:http://blog.csdn.net/prevention - - (void)scrollViewDidScroll:(UIScrollView *)scrollView { [_inputTextView resignFirstResponder]; } - 转载请注明来自:http://blog.csdn.net/prevention iOS Dev (63) 如何在 TableView 滚动时收

iOS开发基础-图片切换(2)

延续:iOS开发基础-图片切换(1),对(1)里面的代码进行改善. 在 ViewController 类中添加新的数组属性:  @property (nonatomic, strong) NSArray *infoArray; //存放图片信息 通过 self.infoArray 的 getter 方法对其实现初始化(懒加载),其中代码中的 _infoArray 不能用 self.infoArray 替换: 1 //infoArray的get方法 2 - (NSArray *)infoArray