【发布时间】:2010-09-22 20:06:45
【问题描述】:
在cellForRowAtIndexPath 中,我将UIImageView 添加到cell.contentView。问题是,当单元格从屏幕上滚动并重新打开时,它会在已经存在的图像之上再次添加相同的图像。这种情况不断发生,直到我得到一个非常堆叠的模糊图像。
您是否必须继续删除您添加到cell.contentView 的任何图像视图?如果是这样,您在什么委托方法中执行此操作?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
MyTableCell *cell = (MyTableCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyTableCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.jpg"]];
imageView.center = CGPointMake(310, 48);
[cell.contentView addSubview:imageView];
[imageView release];
return cell;
}
【问题讨论】:
-
如果没有任何代码来看看发生了什么,这有点难以判断,但听起来你的问题可能与表格单元格重用有关,这是推荐的做法,通常由 XCode 模板实现.你能发布一些你的代码吗?
-
只是出于好奇,如果您是从笔尖加载单元格,为什么不将图像添加到笔尖而不是通过编程方式进行呢?
-
图片是动态的,是从服务器加载的,所以我不能把它放在笔尖里。
-
哦,好的。您仍然可以将 UIImageView 添加到笔尖,然后通过设置“图像”属性以编程方式显示实际图像,但我想问题现在已经解决了 :)
标签: ios iphone uitableview