iPhone UITableView在其中显示一个缓存视图';s UITableCellView,最后添加的一个!

iPhone UITableView在其中显示一个缓存视图';s UITableCellView,最后添加的一个!,iphone,Iphone,我有一个返回缓存图像视图(UIImageView)的对象,它进行加载,显示加载的图像,然后用加载的图像填充视图 在我的例子中,TableView显示了多行,其中同一用户照片可能会多次出现,我注意到,因为它是缓存的,所以它显示在添加到的最后一个单元格中。每次表请求单元格时,我都试图构造UIImageView,它可以工作,所以问题在于缓存的图像视图!,但我不知道为什么!暗示 我不知道我是否理解你的问题 因此,要继续,您的问题是单元格中的UIImageView“始终”相同 在TableView中,如果

我有一个返回缓存图像视图(UIImageView)的对象,它进行加载,显示加载的图像,然后用加载的图像填充视图


在我的例子中,TableView显示了多行,其中同一用户照片可能会多次出现,我注意到,因为它是缓存的,所以它显示在添加到的最后一个单元格中。每次表请求单元格时,我都试图构造UIImageView,它可以工作,所以问题在于缓存的图像视图!,但我不知道为什么!暗示

我不知道我是否理解你的问题

因此,要继续,您的问题是单元格中的UIImageView“始终”相同

在TableView中,如果使用相同的“可重用”单元格,则需要从UIImageView中“删除”UIImage。在单元构造中,创建UIImageView并将其添加到单元中

if (NEED_CREATE_CELL) {

  // create UIImageView etc

} else {

  // Set nil to the image property of the UIImageView
  // Like doing [ (UIImageView*)[ cell viewWithTag:80 ] setImage:nil ];

}

它是否回答了您的问题^^?

不完全正确!在我的例子中,用户对象保留对UIImageView的引用,创建一次,然后重用它。在TableView中,例如,如果用户发布了两条评论,那么他的照片必须显示在两行(两条评论)中,所发生的是它显示在第二行,而不是第一行。所以最后一个被渲染的单元格会显示照片!这很奇怪。当我更改每次调用返回UIImageView以创建新UIImageView的方法实现时,每行(注释)都显示UIImageView。这能澄清问题吗?是的,我想我明白了。问题是UIView(所以UIImageView)不能同时位于两个位置。您最好的解决方案是(为用户)保留UIImage(在UIImageView中没有),然后从de UIImageView更改每行的de image属性;-)谢谢,我将看看如何做到这一点,因为我正在使用UIImageView,以便在从服务器加载正确的图像时显示tmp图像,然后更新UIImage.image值!是的,我认为这是解决你问题的更好办法。祝你好运(如果有帮助,请考虑批准答案;-)我将加载图像的逻辑从UIImageView移动到ImageLoader,然后每次都构造一个新的UIImageView(子类)并引用加载程序,它确实起了作用!但为什么UIView不能位于多个位置?非常感谢您的回答:-)