How to play svga animation in SwiftUI

182 Views Asked by At

I need to support iOS14, is there any way to play svga animation using SwiftUI? Here is my svga url: https://iulia.iwlive.club/ng/ring3d3.svga

1

There are 1 best solutions below

0
GorCat On BEST ANSWER

It can be achieved by SwiftySVGAPlayer

First, use CocoaPod to install SwiftySVGAPlayer:

pod 'SwiftySVGAPlayer'

Then, implement UIViewRepresentable to make SwiftySVGAPlayer available in SwiftUI

import SwiftUI 
import SVGAPlayer

struct SVGAPlayerView:UIViewRepresentable
{
    var url:URL
    
    func makeUIView(context: Context) -> SVGAPlayer {
        let player = SVGAPlayer()
        let parser = SVGAParser()
        parser.parse(with: url) { videoItem in
            if let item = videoItem {
                player.videoItem = item
                player.startAnimation()
            }
        }
        return player
    }
    
    func updateUIView(_ uiView: SVGAPlayer, context: Context) {
    }
}


struct SVGAPlayerView_Previews: PreviewProvider {
    static var previews: some View {
        SVGAPlayerView(url: URL(string: "https://iulia.iwlive.club/ng/ring3d3.svga")!)
    }
}