web-dev-qa-db-ja.com

GIF画像をAssetsフォルダーに追加し、プログラムでUIImageViewにロードする方法

@ 2xおよび@ 3xGIF画像をXcodeのAssetsフォルダーに入れようとしています。次のリンクを試しましたが、うまくいきませんでした。 リンク1 および リンク2

現在、GIFファイルをプロジェクトバンドルに追加してロードし、これを使用してアクセスしています

let bundleURL = NSBundle.mainBundle()
            .URLForResource("phone_animation", withExtension: "gif") 

しかし、Assetsフォルダーからそれらをロードしたいと思います。私にできる方法はありますか?また、アセットに追加した後、それらをイメージビューにロードするにはどうすればよいですか?

5
Amogh Shettigar

あなたのコメントによると、これはあなたが探している解決策です:

  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")
    
12
Andrea Mugnaini

GifをUIImageにロードするには、2つのライブラリをお勧めします

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)または、これを使用できます library

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)

これがお役に立てば幸いです

4
Ganesh Manickam