Ios UIWebImage+;细胞内图像的移动

Ios UIWebImage+;细胞内图像的移动,ios,objective-c,Ios,Objective C,我有一个收藏视图。在cellForRow方法中,我在collectionViewCell中设置了一个对象。该对象的setter获取对象的图像url,并使用AFNetworking异步下载图像。(setter位于自定义单元格子类中) 然而,当我下载新图像和我重新加载数据时,我必须向下滚动以加载正确的图像。。。有时图像会更改单元格或复制(但我知道该单元格中的对象不会更改,因为对象标题是预期的标题) 发生了什么事?我认为这可能主要是因为在collectionview中重复使用了单元格。如果希望在不重新

我有一个收藏视图。在cellForRow方法中,我在collectionViewCell中设置了一个对象。该对象的setter获取对象的图像url,并使用AFNetworking异步下载图像。(setter位于自定义单元格子类中)

然而,当我下载新图像和我重新加载数据时,我必须向下滚动以加载正确的图像。。。有时图像会更改单元格或复制(但我知道该单元格中的对象不会更改,因为对象标题是预期的标题)


发生了什么事?

我认为这可能主要是因为在collectionview中重复使用了单元格。如果希望在不重新加载单元格(或向下滚动)的情况下交换图像,请尝试将自定义单元格的
image
属性设置为
nil
,然后将该属性设置为
nil
您需要致电:

[self.imageView setImageWithURL:<#some url#> placeholderImage:<#placeholder image same size as imageview#>];
[self.imageView setImageWithURL:placeholderImage:];
AFNetworking负责缓存图像,因此您可以在每次调用cellForRow时安全地调用相同的setter(以避免在不同的单元格上重复使用图像)


注意:占位符图像与imageView大小相同很重要-您的图像将被调出。

可能需要查看代码才能回答此问题。您是否在后台线程上操作UI元素?这可能是您的问题…可能是因为图像是异步下载的,一旦下载,图像视图将在现在应该显示它,但必须显示另一个图像(因为您向上/向下滚动,单元格被重复使用)。因此,在尝试显示另一个图像时,它似乎没有取消当前图像下载。但这是猜测……不是真的。AFNetworking的
UIImageView
类别缓存图像本身,而您的
UIImageView
对象仍然存在-您只是将图像设置为零,而不是视图。