Блок завершения Lottie animationView не выполняется

#ios #swift #asynchronous #lottie

#iOS #swift #асинхронный #Лотти

Вопрос:

 animationView!.play(fromProgress: AnimationProgressTime(y),
    toProgress: AnimationProgressTime(y),
       loopMode: LottieLoopMode.playOnce,
       completion: { (finished) in
        if finished {
          print("Animation Complete")

        } else {
          print("Animation cancelled")
        }
        let renderer = UIGraphicsImageRenderer(size: animationView!.bounds.size)
        let image = renderer.image { ctx in

            animationView!.drawHierarchy(in: animationView!.bounds, afterScreenUpdates: true)

        }
        completionBlock(image)
})
  

Я работаю над приложением для обработки изображений. Я пытаюсь добавить текстовые анимации в приложение с помощью Lottie.

Моя проблема в том, что блок завершения воспроизведения не всегда выполняется. В опубликованном мной примере он не выполняется, но если я перемещаю часть, начинающуюся с let renderer = UIGraphicsImageRenderer(size: animationView!.bounds.size) и заканчивающуюся completionBlock(image) , из блока завершения, запускается блок завершения воспроизведения.

Моя другая проблема заключается в том, что даже если play выполняется, я не знаю, как дождаться его завершения и только затем вернуться из моей функции.