读书人

为什么小弟我的tableview中一个cell中

发布时间: 2013-02-04 10:50:22 作者: rapoo

为什么我的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应该就可以了

读书人网 >Iphone

热点推荐