2

I'm new to Lottie library and trying to integrate a simple animation. I have my animated json at folder Resources->Json->LottieAnimations->checkMark.json

I have installed Lottie via pod install and its current version is 3.1.0. In my storyboard I have added a view and gave the class name as AnimationView and in the interface builder gave the Animation Name as "checkMark".

This is the outlet

@IBOutlet weak var checkMarkAnimationView: AnimationView!

And on viewDidLoad I just call

checkMarkAnimationView.play()

But nothing happens here. Am I missing something?

TylerH
  • 20,799
  • 66
  • 75
  • 101
Francis F
  • 3,157
  • 3
  • 41
  • 79

4 Answers4

3

You need to do something like this (if in the code):

 let view = AnimationView()
    let path = Bundle.main.path(forResource: "checkMark",
                                ofType: "json") ?? ""
    view.animation = Animation.filepath(path)
    self.view.addSubview(view)
    view.play()

if doesn't work, please check animation name or JSON file

Updated

also check is JSON file added in Bundle resources (Build phases -> Copy Bundle Resources)

Mike H
  • 487
  • 2
  • 13
2
    let animationView = AnimationView()
    let animation = Animation.named("<place-your-json-filename>", animationCache: LRUAnimationCache.sharedCache)
    self.view.addSubview(animationView)
    animationView.frame = self.view.bounds
    animationView.animation = animation
    animationView.loopMode = .loop
    animationView.play()
Matheus Lima
  • 158
  • 3
  • 7
0
  let animationView = AnimationView()
 let path = Bundle.main.path(forResource: "loader",
                                     ofType: "json") ?? ""
  animationView.animation = Animation.filepath(path)
        animationView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
        animationView.center = self.view.center
        animationView.loopMode = .loop
        self.view.addSubview(animationView)
        animationView.play()
Sachin Kishore
  • 324
  • 3
  • 8
0
let animationSubView = AnimationView(name: "jsonAnimationFileName")
animationSubView.frame = self.checkMarkAnimationView.bounds
animationSubView.contentMode = .scaleAspectFit

self.checkMarkAnimationView.addSubview(animationSubView)
animationSubView.play()

Add this to viewDidLoad()

Wimukthi Rajapaksha
  • 961
  • 1
  • 11
  • 23