1

我有一个带有自定义 uitableviewcell 的 uitableview;单元格由一个图像和几个标签组成 图像是使用这种方法远程下载的

 [SDWebImageDownloader downloaderWithURL:[NSURL URLWithString:url] delegate:self];

我使用上述方法而不是以下方法:[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder. png"]];

(参考https://github.com/rs/SDWebImage)因为我需要在下载图像后进行一些后期处理。因为 SDWebImageDownloader 在图像完成加载时有一个回调方法,这就是我使用它的原因。

如果我做

 [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
               placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

[后期处理图片]

有可能我在完全下载之前对图像进行后处理,无论如何这不是问题,只是让你知道上下文

在做了一些研究之后,saome 说我应该取消加载请求......但我不知道这是否会有所帮助,而且我不知道如何区分我应该真正加载哪个以及应该取消哪些

我的问题是,当使用 SDWebImageDownloader 时,当滚动 uitableview 时,图像会闪烁,闪烁的方式是,您会看到图像缓慢加载并从上一个图像更改为另一个图像,最后它确实加载了正确的图像,但是不希望闪烁

似乎导致问题的原因是对 SDWebImageDownloader 的调用,而不是对我正在执行的图像的后处理导致延迟或闪烁,因为在 SDWebImageDownloader 回调中,如果我只是分配图像,闪烁仍然会发生。

我别无选择,只能使用 SDWebImageDownloader,因为我需要调整图像大小......谁能告诉我如何避免闪烁?谢谢

4

1 回答 1

0

自从更新AFNetworking库以来,我注意到有时会调用setImageWithURL:fromAFNetworking而不是 from SDWebImage

我通过使用downloadWithURL:options:progress:completed:from解决了这个问题SDWebImageManager

我有一个UITableView(带有自定义单元格),我使用 Foursquare API 中的数据填充了它。该setImageWithURL:方法导致闪烁。在模拟器(LAN)和iPhone5(WiFi)上,它似乎闪烁。imageView但是在设备上切换到 2G 时,我注意到,在设置正确的图像之前,正在加载来自不同单元格的图像。

我从 切换setImageWithURL:downloadWithURL:options:progress:completed:,首先设置一个占位符图像,然后在downloadWithURL:options:progress:completed:方法的完成块中设置图像。它变得更平滑,并解决了所有闪烁。

于 2014-01-01T20:32:05.917 回答