SD4.0 gif动图无法加载本质原因

最近使用最新版SD,导致App中很多gif图无法加载,网上搜一下 原来是SD不支持了,以及推出一个新的库FLAnimatedImage,专门用来处理gif图加载问题。在更新描述上也说的很清楚。但是,SD是咋处理的呢,怎么搜也搜不到,于是便自己看SD源码。

找到UIImage+GIF.m(SD 网络GIF图和本地GIF图都是最终通过这个类实现动态)这个类。代码截图如下:

可加载gif代码


最新的代码

很明显看到,之前的代码是对每一帧都取出来,然后后续播放。问题出在作者获取每一帧图像的显示时间的目的仅仅是为了计算gif动画的总时长,并没有给每一帧图像的显示时间分配相应的权重,导致每一帧图像显示的时间为平均时间,视觉上给人带来了卡顿效果。所以sd直接去掉这块用FLAnimatedImage代替。最新的代码,只取了第一帧。所以现在SD不支持动图了,不过可以使用FLAnimatedImage。

个人喜欢看问题,找到根本原因,所以在此记录下寻找的过程。

你可能感兴趣的:(SD4.0 gif动图无法加载本质原因)