美文网首页
FLAnimatedImage

FLAnimatedImage

作者: Silence_xl | 来源:发表于2019-04-10 15:19 被阅读0次

FLAnimatedImage简单流程图

FLAnimatedImage项目的流程比较简单,FLAnimatedImage就是负责GIF数据的处理,然后提供给FLAnimatedImageView一个UIImage对象。FLAnimatedImageView拿到UIImage对象显示出来就可以了。


image.png

FLAnimatedImage解析

关键方法 初始化解析
a、对传进来的数据进行合法性判断,至少不能为nil。
b、初始化对应的变量,用于存储各类辅助数据。
c、将传进来的数据处理成图片数据,根据 kCGImageSourceShouldCache 的官方文档描述 Whether the image should be cached in a decoded form. The value of this key must be a CFBoolean value. The default value is kCFBooleanFalse in 32-bit, kCFBooleanTrue in 64-bit. 所以设置 kCGImageSourceShouldCache为NO,可以避免系统对图片进行缓存,
d、从数据中读取图片类型,判断该图片是不是GIF动画类型。
e、读取GIF动画中的动画信息,包括动画循环次数,有几帧图片等。
f、遍历GIF动画中的所有帧图片,取出并保存帧图片的播放信息,设置GIF动画的封面帧图片
g、根据设置或者GIF动画的占用内存大小,与缓存策略对比,确认缓存策略。

FLAnimatedImageView解析

关键方法 设置FLAnimatedImage对象解析
a、判断新旧FLAnimatedImage对象是否一致,一致就不需要继续操作了
b、设置GIF动画的封面帧图片,当前帧索引,GIF动画的循环播放次数,播放时间累加器
c、更新是否发起动画的标志位,判断是否启动GIF动画
d、刷新View的layer

总结

FLAnimatedImage就是负责生产数据是生产者。
FLAnimatedImageView负责消费数据是消费者。

相关文章

网友评论

      本文标题:FLAnimatedImage

      本文链接:https://www.haomeiwen.com/subject/xooniqtx.html