如何将 GIF 图像添加到 Assets 文件夹并以编程方式将它们加载到 UIImageView 中
How to add GIF images to Assets folder and load them in UIImageView programmatically
我正在尝试将我的@2x 和@3x GIF 图像放入Xcode 中的Assets 文件夹中。我尝试了以下链接,但它对我不起作用。
Link 1 and Link 2.
我目前正在加载 GIF 文件,方法是将它们添加到我的项目包中并使用它进行访问
let bundleURL = NSBundle.mainBundle()
.URLForResource("phone_animation", withExtension: "gif")
但我想从我的资产文件夹中加载它们。有什么办法可以做到吗?以及如何在将它们添加到资产后将它们加载到我的图像视图中?
要将 gif 加载到 UIImage,我建议使用两个库
1) 你可以使用这个 library
只需将其加载到 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)
希望对您有所帮助
根据您的评论,这是您正在搜索的解决方案:
对使用 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
}
}
然后使用扩展调整@Ganesh 建议,您可能会执行以下操作:
imageView.image = UIImage.gif(asset: "YOUR_GIF_NAME_FROM_ASSET")
我正在尝试将我的@2x 和@3x GIF 图像放入Xcode 中的Assets 文件夹中。我尝试了以下链接,但它对我不起作用。 Link 1 and Link 2.
我目前正在加载 GIF 文件,方法是将它们添加到我的项目包中并使用它进行访问
let bundleURL = NSBundle.mainBundle()
.URLForResource("phone_animation", withExtension: "gif")
但我想从我的资产文件夹中加载它们。有什么办法可以做到吗?以及如何在将它们添加到资产后将它们加载到我的图像视图中?
要将 gif 加载到 UIImage,我建议使用两个库
1) 你可以使用这个 library
只需将其加载到 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)
希望对您有所帮助
根据您的评论,这是您正在搜索的解决方案:
对使用 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 } }
然后使用扩展调整@Ganesh 建议,您可能会执行以下操作:
imageView.image = UIImage.gif(asset: "YOUR_GIF_NAME_FROM_ASSET")