Я использую лот ie - ios (3.1.6) для реализации своего рода индикатора загрузки во время отправки запроса API. Анимация json - это весь поток от начала до конца, который я воспроизводил с самого начала, зацикливая среднюю часть неизвестное количество раз, и когда ответ API получен, я пытаюсь плавно завершить sh анимация с того места, где я сейчас нахожусь.
На самом деле происходит следующее: при получении ответа API мой блок завершения немедленно запускается без завершения анимации.
func showLoading() {
animationView.play(fromFrame: 0, toFrame: 546) { [weak self] _ in
self?.animationView.loopMode = .loop
self?.animationView.play(fromFrame: 348, toFrame: 546)
}
func dismissLoading(animated: Bool, completion: (() -> Void)?) {
if animationView.isAnimationPlaying {
animationView.play(fromFrame: animationView.currentFrame, toFrame: 599, loopMode: .playOnce, completion: { _ in
UIView.animate(
withDuration: animated ? 0.3 : 0,
animations: {
self.containerView.alpha = 0.0
},
completion: { [weak self] _ in
completion?()
}
)}
)
}
}
Спасибо!