测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017 年 8 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Agustin Iturbide 维护。
GifHero 是一个用于在 iOS 上本地区渲染动画 GIF 的库。
以下是一个 GifHero 在工作中的示例
GifView 是您为新应用程序添加 GIF 的最佳选择
安装 Pod 后,将其导入到您的项目中
import GifHero
创建一个新的 GifView
let gifView:GifView = GifView()
addSubview(gifView)
GifView 可以通过名称加载项目中的任何 GIF
gifView.gifNamed = "pigJumping.gif"
另外,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 结合 CoreGraphics 和 ImageIO 来优化 GIF 的渲染。
它预处理每个帧,必要时进行缩放和裁剪,并且只会恰当地执行一次,这样UIKit就不必对每个帧,动画的每个循环进行缩放;最终结果是CPU使用率显著降低,通过使用可能的最小图像释放了大量内存。
没有必要等待预处理完成,预处理在后台进行,当帧准备好时即刻开始动画。大多数情况下,动画从开始就没有延迟地顺利进行。
有可能在预处理包含大量帧的非常大的GIF时,CPU使用率开始增加,但这只会是第一阶段,之后应该会显著下降。
说实话,你不会在任何其他地方找到更优化的GIF渲染器,但不要仅信我的话,下载演示应用程序并亲自尝试一下。
演示应用程序动画性能截图