iOS中的GIF终极指南。

动画内容的另一面。

GIF大约在1980年代后期。 只是在最近,它们才被虚拟吹灭。 从博客到meme网站,您可以在任何地方看到它们。 在图片上使用GIF的原因很多,例如,它们通常不像视频那样沉重,可以恰当地显示您的观点并且可以在任何地方兼容。

如果一张图片可以说一千个单词,请想象一个GIF可以有多少个。

存在对在iOS中播放GIF的本机支持,但乏味。 您需要使用Apple的ImageIO框架加载GIF的每个图像,并自定义theAnimatedImagesanimationDurationanimationRepeatCount API。
Flipboard实现了一种在其应用程序内播放GIF的解决方案。 我们将使用他们的图书馆,名为
FLAnimatedImage在我们漂亮的小应用程序中复制相同内容。

按着这些次序:

  1. 安装Cocoapods。 如果尚未安装,请按照此处的步骤操作。
  2. 创建一个新的Xcode项目。 我将其命名为GIFTest。

FLAnimatedImage有一个cocoapod可用。 如果您不知道什么是Cocoapods或它如何工作,请查看此链接。

3.现在,打开终端。 将目录更改为保存iOS项目的位置。 通过键入pod init初始化我们项目的Cocoapods。 接下来,通过键入open podfile 。 我们将添加吊舱。 添加线pod 'FLAnimatedImage'

4.现在,我们将进行pod install以将pod install到我们的项目中。 我们将关闭Xcode的所有会话并打开GIFTest.xcworkspace项目。 那是带有白色图标的Xcode项目。 xcworkspace项目有我们的原始项目,还有一个带有pod的xcode项目。

5.太好了! 完成所有设置后,我们将三个UIImageViews添加到我们的项目中。 我们将其类更改为FLAnimatedView。

6.导入FLAnimatedImageView并为所有三个图像创建出口。

7.现在,我们将在本地加载两个GIF,并从互联网加载一个GIF。 要在本地加载GIF,请将它们移到您的项目中,然后选中“如果需要,复制项目”。

8.现在要在本地加载GIF,请按照以下步骤操作。

因此,只要提供了GIF,就将帧解压缩为位图格式(CPU密集型),并将其填充到缓存中。 编码的位图将一直保留到对象的生存期。 它试图有效地选择缓存大小,即,如果GIF太小,它将帧保留在缓存中,否则,它仅缓冲足够的帧以进行实时回放。 当系统发出内存警告时,所有帧都将丢失,并且过程将退回到按需解码。

因此,今天,我们学习了如何使用Cocoapods,如何在项目中对其进行初始化,安装了Flipboard的开源库FLAnimatedImage并将其用于显示项目内的GIF和来自互联网的GIF。

有关更多参考,请在此处查看库。
有关完整的源代码,请参阅
我的Github存储库。

如有任何问题和建议,请在下面发表评论!