yeatse / KingfisherWebP

Elegantly handle WebP format with Kingfisher.
MIT License
306 stars 73 forks source link

在tableview进行刷新时,cell里的webp动图会闪烁一下 #85

Open chenfei533 opened 1 month ago

chenfei533 commented 1 month ago

在版本1.4.1及以下版本没有这个问题,目前我想升级至1.6.x来解决偶现的大图OOM问题。有什么办法可以规避闪烁的现象吗?

yeatse commented 1 month ago

能发个demo吗 我复现下

chenfei533 commented 1 month ago

能发个演示吗 我重复下 WebPDemo.zip 请查收

chenfei533 commented 1 month ago

哈喽,最近有什么进展吗

yeatse commented 4 weeks ago

@chenfei533 options 加上 .keepCurrentImageWhileLoading 应该就好了

yeatse commented 4 weeks ago

@chenfei533 options 加上 .keepCurrentImageWhileLoading 应该就好了

另外,如果是动图的话,1.6.x 以后的版本,把 UIImageView 换成 AnimatedImageView 会在性能上好不少

Yoo-000 commented 4 weeks ago

@chenfei533 options 加上 .keepCurrentImageWhileLoading 应该就好了

另外,如果是动图的话,1.6.x 以后的版本,把 UIImageView 换成 AnimatedImageView 会在性能上好不少

使用 AnimatedImageView 时怎么控制webp的播放次数呢,我使用 repeatcount 设置为 once 或者 1 时没有效果,动图一直播放不会停止

Yoo-000 commented 4 weeks ago

@chenfei533 options 加上 .keepCurrentImageWhileLoading 应该就好了

你好,加上 keepCurrentImageWhileLoading 后对于图片不多的界面有作用,但是若界面内需要加载的图片很多时,图片仍会闪烁并且部分图片加载的位置会错乱

chenfei533 commented 4 weeks ago

@chenfei533 options 加上 .keepCurrentImageWhileLoading 应该就好了

另外,如果是动图的话,1.6.x 以后的版本,把 UIImageView 换成 AnimatedImageView 会在性能上好不少

使用 AnimatedImageView 时怎么控制webp的播放次数呢,我使用 repeatcount 设置为 once 或者 1 时没有效果,动图一直播放不会停止

我们目前需要控制次数或者帧数的地方是用YY去加载的

chenfei533 commented 4 weeks ago

@chenfei533 options 加上 .keepCurrentImageWhileLoading 应该就好了

你好,加上 keepCurrentImageWhileLoading 后对于图片不多的界面有作用,但是若界面内需要加载的图片很多时,图片仍会闪烁并且部分图片加载的位置会错乱

如果在tableview的cell里使用keepCurrentImageWhileLoading,会导致复用问题,应该就是你说的错乱。目前也是没想到好的解决办法来处理闪烁。。

yeatse commented 3 weeks ago

options 加上 .processingQueue(.mainCurrentOrAsync) 再试试?

yeatse commented 3 weeks ago

@chenfei533 options 加上 .keepCurrentImageWhileLoading 应该就好了

另外,如果是动图的话,1.6.x 以后的版本,把 UIImageView 换成 AnimatedImageView 会在性能上好不少

使用 AnimatedImageView 时怎么控制webp的播放次数呢,我使用 repeatcount 设置为 once 或者 1 时没有效果,动图一直播放不会停止

repeatCount 在 1.5.2 以后才生效:https://github.com/yeatse/KingfisherWebP/releases/tag/1.5.2

chenfei533 commented 3 weeks ago

options 加上 .processingQueue(.mainCurrentOrAsync) 再试试?

我们一个cell里有5、6个动图,加上这个会有UI阻塞的问题。。

Yoo-000 commented 3 weeks ago

options 加上 .processingQueue(.mainCurrentOrAsync) 再试试?

我们一个cell里有5、6个动图,加上这个会有UI阻塞的问题。。

确实,没有动图的时候加上这个没有影响,有动图时加上该条件后每次刷新内存消耗都会激增,性能不好的手机甚至会因为内存激增闪退