如何将GIF图像添加到资产文件夹中,并以编程方式将其加载到UIImageView中



我试图将我的 @2x和 @3x gif图像放入Xcode中的资产文件夹中。我尝试了以下链接,但对我不起作用。链接1和链接2。

我目前正在通过将其添加到我的项目捆绑包中并使用此

访问它来加载gif文件。
let bundleURL = NSBundle.mainBundle()
            .URLForResource("phone_animation", withExtension: "gif") 

,但我想从我的资产文件夹中加载它们。有什么办法可以做到吗?在将其添加到资产后,如何将它们加载到我的ImageView中?

根据您的评论,这是您正在搜索的解决方案:

  1. 使用SwiftGif的UIImage进行扩展:

    extension UIImage {
      public class func gif(asset: String) -> UIImage? {
        if let asset = NSDataAsset(name: asset) {
           return UIImage.gif(data: asset.data)
        }
        return nil
      }
    }
    
  2. 然后用扩展名调整@ganesh建议,您可能会做类似的事情:

    imageView.image = UIImage.gif(asset: "YOUR_GIF_NAME_FROM_ASSET")
    

将gif加载到uiimage中,我建议两个库

1)您可以使用此库

简单地将其加载到UIImageView

let imageData = try! Data(contentsOf: Bundle.main.url(forResource: "logo-animation", withExtension: "gif")!)
let gifImage = UIImage.gif(data: data!)
imageView.image = gifImage

2)或您可以使用此库

import FLAnimatedImage

然后添加出口

@IBOutlet weak var fashImage: FLAnimatedImageView!

然后使用此代码

let imageData = try! Data(contentsOf: Bundle.main.url(forResource: "logo-animation", withExtension: "gif")!)
fashImage.animatedImage = FLAnimatedImage(animatedGIFData: imageData)

希望这对您有帮助

最新更新