UITableViewCell:ContentView中的UIImageView与iPhone SDK中的图像重叠。

时间:2011-01-19 05:52:35

标签: iphone cocoa-touch uitableview uiimageview

在我的iPhone应用程序中,我使用的是tableView,并在tableViewcell中添加了imageView作为ContentView。

点击按钮我正在更改tableView内容。因此,每次单击一个按钮,它都应该在tableViewCell中显示相应的图像。

问题:

假设我在tableView中加载图片1.png,2.png和3.png分别点击按钮A,B和C.

现在让我们考虑一下,最初我点击按钮A并出现1.png。现在当我点击按钮B然后出现2​​.png但是1.png 仍然在后台。所以基本上它与tableViewCell重叠了一个新的图像。

疑难解答我已经做过:

1)我尝试发布imageView并设置imageView.image = nil;

2)我尝试重新加载表并在每次单击按钮之前清空表。

3)即使我尝试将整个代码放在cellForRowAtIndexPath方法的 if(cell == nil)子句中

4 个答案:

答案 0 :(得分:0)

您是否尝试清除单元格的contentView?

for(UIView* subview in [cell.contentView subviews]) {
   [subview removeFromSuperview];
}

答案 1 :(得分:0)

如果您使用三个不同的imageViews,那么尝试imgView1.hidden = FALSE; imgView.hidden = TRUE; imgView3.hidden = TRUE on button1 click事件。 同样适用于buttton2和button3。

答案 2 :(得分:0)

您似乎已在(cell == nil)块中设置了图像。如果是,请评论出来。

这样做:

if(cell ==nil){
//add image view here.
}

UIImageView *imgView = (UIImageView *)[cell.contentView viewWithTag:ImgViewTag];
if(condition)
   imgView.image = someImage;
else
   imgView.image = nil;

答案 3 :(得分:0)

感谢你们所有人。我得到了答案,我非常感谢Ben Gottlieb。

在下面的链接中找出Ben Gottlieb的答案。它对我有用。

感谢Ben Gottlieb !!!!

remove-image-from-tableviewcell-created-programatically

希望这有助于某人!!