最近碰到一个问题,需要在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];
}
}
}