使用原生 API 展示 GIF 需要使用 ImageIO.framework 来从 data 中解析出每一帧, 同时通过 UIImageView 的 animationImages 属性来达成动画的支持...NSDictionary 做帧缓存,
用CADisplayLink 来做动画的展示, 同时添加帧解码任务....滑动场景下不执行解码任务, 降低 CPU 负载
在快速滑动的场景, CPU 一般都是比较繁忙的, 因此可以在滑动时不生成帧解码任务从而降低 CPU 压力, QMAnimatedImageView 也提供了接口屏蔽这一功能..., 几乎是不可用的, 虽然帧数还不错, 但是非常卡, 具体帧数与卡顿的关系可以参考文章 APP&游戏需要关注Jank卡顿及卡顿率吗[3]....在主线程滑动时, 暂停解码新的帧, 避免快速滑动场景浪费 CPU 资源.