我有一个收藏视图。在 cellForRow 方法中,我在 collectionViewCell 中设置了一个对象。该对象的设置器获取对象的图像 url 并使用 AFNetworking 异步下载图像。(设置器在自定义单元子类中)
但是,当我下载新图像并重新加载数据时,我必须向下滚动才能加载正确的图像...有时图像会更改单元格或重复(但我知道该单元格中的对象不会更改,因为对象标题是预期的。
怎么了?
我有一个收藏视图。在 cellForRow 方法中,我在 collectionViewCell 中设置了一个对象。该对象的设置器获取对象的图像 url 并使用 AFNetworking 异步下载图像。(设置器在自定义单元子类中)
但是,当我下载新图像并重新加载数据时,我必须向下滚动才能加载正确的图像...有时图像会更改单元格或重复(但我知道该单元格中的对象不会更改,因为对象标题是预期的。
怎么了?
如果您希望图像在不重新加载单元格(或向下滚动)的情况下换出,您需要调用:
[self.imageView setImageWithURL:<#some url#> placeholderImage:<#placeholder image same size as imageview#>];
AFNetworking 负责缓存图像,因此您可以在每次调用 cellForRow 时安全地调用相同的设置器(以避免图像在不同的单元格上重用)
注意:重要的是占位符图像与 imageView 的大小相同 - 您的图像将被换出。
我认为这可能主要是因为在 collectionview 中重用了单元格。尝试将image
自定义单元格的属性设置为nil
之后dequeueReusableCellWithReuseIdentifier: