I am trying to put my @2x and @3x GIF images into the Assets folder in Xcode. I have tried the following links but it didn't work for me. Link 1 and Link 2.
I am currently loading the GIF files by adding them to my project bundle and accessing it using this
let bundleURL = NSBundle.mainBundle()
.URLForResource("phone_animation", withExtension: "gif")
But I want to load them from my Assets folder. Is there a way I can do it? And how do I load them into my imageview after adding it to Assets?
With the release of Xcode 12.5, Apple finally lets developers record videos and animated GIF right from simulators. In this tutorial, I will walk you through this new feature. Please note that the latest version of Xcode requires you to run macOS Big Sur.
According to your comment, this is the solution that you are searching:
make an extension of UIImage which uses SwiftGif:
extension UIImage {
public class func gif(asset: String) -> UIImage? {
if let asset = NSDataAsset(name: asset) {
return UIImage.gif(data: asset.data)
}
return nil
}
}
Then tuning @Ganesh suggestion with the extension you might do something like:
imageView.image = UIImage.gif(asset: "YOUR_GIF_NAME_FROM_ASSET")
To load gif into UIImage I suggest two libraries
1) you can use this library
simply you can load it into UIImageView
let imageData = try! Data(contentsOf: Bundle.main.url(forResource: "logo-animation", withExtension: "gif")!)
let gifImage = UIImage.gif(data: data!)
imageView.image = gifImage
2) Or you can use this library
import FLAnimatedImage
then add outlet
@IBOutlet weak var fashImage: FLAnimatedImageView!
then use this code
let imageData = try! Data(contentsOf: Bundle.main.url(forResource: "logo-animation", withExtension: "gif")!)
fashImage.animatedImage = FLAnimatedImage(animatedGIFData: imageData)
Hope this will help you
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With