使用SDWebImageDownloader时UITableView闪烁
我有一个与自定义的uitableviewcell uitableview;所述电池由 图像使用此方法使用SDWebImageDownloader时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“]];
(ref https://github.com/rs/SDWebImage),因为我需要在下载图像后进行一些后期处理。因为SDWebImageDownloader在图像加载完成时有一个回调方法,这就是我使用它的原因。
,如果我做
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
[交processImage来]
有可能是我正在处理后的图像被完全下载之前,反正这不是问题,但只是让你知道上下文
在做了一些研究之后,saome说我应该取消加载请求......但是我不知道这是否会有所帮助,另外我不知道如何区分哪一个我应该真的加载以及哪个我应该取消
我的问题是,当使用SDWebImageDownloader时,通过uitableview滚动时,图像闪烁,以某种方式闪烁,您看到图像缓慢加载并从以前的图像更改为其他图像,最终确实会加载正确图像,但闪烁是不希望的
它似乎是什么导致的问题是调用SDWebImageDownloader而不是后期处理的图像我这样做会导致延迟或闪烁,因为在SDWebImageDownloader回调中,如果我只是简单地分配图像,闪烁仍然会发生。
我别无选择,只能使用SDWebImageDownloader,因为我需要调整图像大小...任何人都可以告诉我如何避免闪烁?谢谢
自从更新AFNetworking
库以来,我注意到有时会从AFNetworking
中调用setImageWithURL:
而不是从SDWebImage
中调用。
我用downloadWithURL:options:progress:completed:
从SDWebImageManager
解决它。
我有一个UITableView
(与自定义单元格),我使用来自Foursquare API的数据填充。 setImageWithURL:
方法导致闪烁。在模拟器(LAN)和iPhone5(WiFi)上,它看起来像闪烁。但是在设备上切换到2G时,我注意到,在正确的图像设置之前,来自不同单元的图像正在加载到imageView
中。
我从setImageWithURL:
切换到downloadWithURL:options:progress:completed:
,先设置占位符图像,然后在downloadWithURL:options:progress:completed:
方法的完成块中设置图像。它变得更加平滑,并解决了所有闪烁。
1)你的意思是闪烁,还是口吃?图像是否实际“闪烁”,暂时黑色/空白?或者它是慢动作(即截图可以捕获占位符/真实图像?或者仅仅是它在滚动中结束,而每个单元格都被加载?2)您是否将可重用单元格出列? – ckhan
嗨ckchan感谢您的回复。是的,我正在重复使用这些单元格。观察结果是,当滚动时,你可以看到图像从旧图像改变到新图像...这种延迟是可通知的。它只发生,如果我使用“旧图片”SDWebDownloadManager – user1118019
你的意思是占位符,或者以前用于其他数据的单元格中是什么? – ckhan