GifHero 1.0.2

GifHero 1.0.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017 年 8 月
SwiftSwift 版本3.0
SPM支持 SPM

Agustin Iturbide 维护。



GifHero 1.0.2

  • 作者:
  • iturbide

GifHero

GifHero 是一个用于在 iOS 上本地区渲染动画 GIF 的库。

以下是一个 GifHero 在工作中的示例

GifHero in action

安装

使用方法

GifView

GifView 是您为新应用程序添加 GIF 的最佳选择

添加 GifHero

安装 Pod 后,将其导入到您的项目中

import GifHero

创建一个新的 GifView

let gifView:GifView = GifView()
addSubview(gifView)

通过名称加载

GifView 可以通过名称加载项目中的任何 GIF

gifView.gifNamed = "pigJumping.gif"

通过 URL 加载

另外,GifView 也可以通过 URL 加载 GIF

let url:URL = getSomeUrl()
gifView.url = url

布局

默认情况下,GifView 使用布局约束,但如果您想使用自动调整大小遮罩和矩形,则可以这样做

gifView.translatesAutoresizingMaskIntoConstraints = true
gifView.frame = CGRect(x:0, y:0, width:100, height:100)

内容模式

最初,GifView 尝试填充内容以保持比例(scaleAspectFill),但也可以使用填充模式

gifView.contentMode = UIViewContentMode.scaleAspectFit

动画

GifView 初始状态是暂停的以节省资源,但开始动画同样简单

gifView.animating = true

演示

克隆或下载此仓库,其中包含一个演示应用程序

功能

■ 最佳性能

■ 节省内存使用量

■ 最小能耗

■ 实现简单

GifHero 之魔法

GifHero 结合 CoreGraphics 和 ImageIO 来优化 GIF 的渲染。

它预处理每个帧,必要时进行缩放和裁剪,并且只会恰当地执行一次,这样UIKit就不必对每个帧,动画的每个循环进行缩放;最终结果是CPU使用率显著降低,通过使用可能的最小图像释放了大量内存。

没有必要等待预处理完成,预处理在后台进行,当帧准备好时即刻开始动画。大多数情况下,动画从开始就没有延迟地顺利进行。

有可能在预处理包含大量帧的非常大的GIF时,CPU使用率开始增加,但这只会是第一阶段,之后应该会显著下降。

说实话,你不会在任何其他地方找到更优化的GIF渲染器,但不要仅信我的话,下载演示应用程序并亲自尝试一下。

演示应用程序动画性能截图

CPU usage

Memory usage