为什么我的tableview中一个cell中的的内容老是在另一个cell中出现
我的cell大概显示类似新浪微博cell中那样的内容
大体是这么设计的:
1、一登陆首先将要显示的文字内容异步下载完毕保存在缓存,cell显示的时候从缓存中取文字信息
2、然后每当显示一个cell的时候,就异步下载该cell中的用户头像并显示
3、每当显示一个cell的时候,若该cell中有用户发布的图像,则另开辟一个线程异步下载图像并显示
可是3、中下载的图像老是莫名其妙的出现在其他的cell中
请问这是怎么回事?
谢谢
[解决办法]
UITableViewCell是重用的,当然你也可以让它不重用,重用的时候,你前面加载图片的View或者加载文字的View还上面,需要先把子视图移除;
如果cell是你自己定义的子类,所有cell的内容都是在这个类的内部生成的话,则把这些视图的Frame的高度设为0,然后在下次加载再重新设置高度就可以了
[解决办法]
恩,了解,我基本都是用代码实现的,没有用到IB,storyboard。
代码一般复用的写法就是
static NSString *CellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Configure the cell...
if (cell == nil)
{
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"%d",indexPath.row];
return cell;
你可以把UITableViewCell换成你的自定义类HomeCell试试
[解决办法]
重用就是完全一样的东西(用同一块内存),当然包括设置的tag。
重用是再所难免的,属性都设一遍就可以了。不要出现没设置的属性,你这个例子里else里边设为nil应该就可以了