gpt4 book ai didi

ios - 使用 SDWebImageDownloader 时 UITableView 闪烁

转载 作者:行者123 更新时间:2023-11-28 17:31:51 26 4
gpt4 key购买 nike

我有一个带有自定义 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,因为我需要调整图像大小...有人可以告诉我如何避免闪烁吗?谢谢

最佳答案

自从更新 AFNetworking 库后,我注意到有时会调用 AFNetworking 中的 setImageWithURL: 而不是 SDWebImage.

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

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

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

关于ios - 使用 SDWebImageDownloader 时 UITableView 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10974167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com