#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 выполняется, я не знаю, как дождаться его завершения и только затем вернуться из моей функции.