UITableViewCell重用导致动态添加控件时cell乱掉的问题
2015-11-11 15:39
537 查看
最近碰到一个问题,需要在tableViewCell里面放入不同的控件,每个cell都可能不一样。
代码写好后,发现测试的时候,只要涉及到cell的重用就会有问题,重用的那个cell添加的控件并没有消失。
解决办法:1、不重用,这样就不会有问题了,但是这样很显然是不可能的。
2、每次重用之前删除不需要的控件(为了清楚的知道是哪些控件,我在添加控件的时候给控件设了一个tag)。
staticNSString *ID =
@"chatBean_cell";
XHMessageCell *cell = [tableViewdequeueReusableCellWithIdentifier:ID];
if (cell ==nil) {
cell = [[XHMessageCellalloc]
initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:ID];
}else{
for (UIView *viewin cell.btnText.subviews)
{//楼主是把需要的控件放在cell.btnText上面,btnText是cell自定义上面的一个button
if (view.tag>4) {
[viewremoveFromSuperview];
}
}
}
代码写好后,发现测试的时候,只要涉及到cell的重用就会有问题,重用的那个cell添加的控件并没有消失。
解决办法:1、不重用,这样就不会有问题了,但是这样很显然是不可能的。
2、每次重用之前删除不需要的控件(为了清楚的知道是哪些控件,我在添加控件的时候给控件设了一个tag)。
staticNSString *ID =
@"chatBean_cell";
XHMessageCell *cell = [tableViewdequeueReusableCellWithIdentifier:ID];
if (cell ==nil) {
cell = [[XHMessageCellalloc]
initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:ID];
}else{
for (UIView *viewin cell.btnText.subviews)
{//楼主是把需要的控件放在cell.btnText上面,btnText是cell自定义上面的一个button
if (view.tag>4) {
[viewremoveFromSuperview];
}
}
}
相关文章推荐
- UITextField简单的用法
- LeetCode(128) Longest Consecutive Sequence
- LeetCode(128) Longest Consecutive Sequence
- Android studio运行程序报错java.exe'' finished with non-zero exit value 2
- Solr查询参数QueryParam
- Unique Binary Search Trees II
- 下载的pod链接失效,build diff: /../Podfile.lock: No such file or directory解决办法
- leetcode range sum query
- [leetcode] Range Sum Query - Immutable
- ios uilocalnotification 多个本地通知,怎么有区分的删除
- 一个滑出view 的动画
- [LeetCode]Range Sum Query - Immutable
- UITextView 限制字符长度
- 苹果开发 笔记(92) UINavigationBar UITabBar
- UIWindow简单介绍
- SVN报MKCOL request for ... 405 Method Not Allowed错误
- about ANSI escape sequences
- HDU 5538 L - House Building 水题
- 权限添加 easyui datagrid toolbar 隐藏
- Android开发UI之ActionBar的覆盖叠加