如何在没有任何第三方库的情况下使用 UIKit 在 iOS 应用程序中使用 Swift 5 中的 GIF?

Posted

技术标签:

【中文标题】如何在没有任何第三方库的情况下使用 UIKit 在 iOS 应用程序中使用 Swift 5 中的 GIF?【英文标题】:How to use GIFs inside an iOS App without any Third Party Library in Swift 5 using UIKit? 【发布时间】:2020-09-13 10:36:22 【问题描述】:

我目前正在从事一个严重依赖 GIF 的项目。但是,在迷失方向之前,我从未在 Swift for ios 中使用过 GIF;)

我尝试的第一件事是将一些 GIF 导入我的Assets.xcassets Folder。我意识到对 GIF 使用 ImageSet 是行不通的

所以我的第一个问题:如何将 GIF 导入我的项目。我应该只使用一种分辨率,还是像图像一样使用三种更好的方法?

然后我已经检查了一些关于UIImageView 中以编程方式和通过故事板呈现 GIF 的问题。我发现这可能是最好的方法,使用 UIImage 类的 Extension。但是,由于某种原因,Swift 4 示例对我不起作用;(

所以我的第二个问题:如何在我的项目中使用导入的 GIF 并以编程方式将它们显示在 UIImage 视图中?

非常感谢您提前提供的帮助!

【问题讨论】:

【参考方案1】:

您必须手动解码 GIF 数据,然后才能逐帧显示。您在这里不会有任何简单的答案,bcs 这绝对是一个非常难的主意,尝试从第三方和播放器复制解码算法或直接使用它。 SDWebImage 之类的内容将是您的最佳选择。检查 SDAnimatedImagePlayer、SDWebAnimatedImage 类。

【讨论】:

【参考方案2】:

我也有这样的问题要解决。我发现此线程中的答案很有帮助。请检查一下。 Add animated Gif image in Iphone UIImageView

另外,我强烈建议检查FLAnimatedImage 中的一些实现。它处理 iOS 中 GIF 可能需要的显示、播放和其他功能。

【讨论】:

以上是关于如何在没有任何第三方库的情况下使用 UIKit 在 iOS 应用程序中使用 Swift 5 中的 GIF?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有任何 vue 库的情况下在 vue 回调中获取 http 响应标头(axios)

如何在没有第三方库的情况下创建自定义幻灯片菜单。?

在没有第三方库的情况下从 JSON 获取动态对象的最佳方法是啥?

Firebase Cloud Messaging 令牌在没有第三方库的情况下本机反应

如何在没有 Stroybord/Xib 的情况下使用 JTCalendar

在没有第三方库的情况下下载远程图像的最佳方式?