import UIKit
import ImageIO
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
guard let path = Bundle.main.path(forResource: "demo.gif", ofType: nil),
let data = NSData(contentsOfFile: path),
let imageSource = CGImageSourceCreateWithData(data, nil) else { return }
var images = [UIImage]()
var totalDuration : TimeInterval = 0
for i in 0..<CGImageSourceGetCount(imageSource) {
guard let cgImage = CGImageSourceCreateImageAtIndex(imageSource, i, nil) else { continue }
let image = UIImage(cgImage: cgImage)
i == 0 ? imageView.image = image : ()
images.append(image)
guard let properties = CGImageSourceCopyPropertiesAtIndex(imageSource, i, nil) as? NSDictionary,
let gifDict = properties[kCGImagePropertyGIFDictionary] as? NSDictionary,
let frameDuration = gifDict[kCGImagePropertyGIFDelayTime] as? NSNumber else { continue }
totalDuration += frameDuration.doubleValue
}
imageView.animationImages = images
imageView.animationDuration = totalDuration
imageView.animationRepeatCount = 0
imageView.startAnimating()
}
}
swift3播放本地GIF图
最新推荐文章于 2024-05-12 09:56:03 发布