Функция закрытия с Lott ie Animation в Swift - PullRequest
0 голосов
/ 07 мая 2020

Есть ли способ узнать, когда Lottie animation закончится? Мне нужно delete a tableViewCell, но только ПОСЛЕ завершения animation. Это animation:

Настройка:

    //MARK: setup Loading-Animation
func setupLoadingAnimation(){

    successAnimation.translatesAutoresizingMaskIntoConstraints = false
    self.contentView.addSubview(successAnimation)

    successAnimation.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: -30).isActive = true
    successAnimation.centerYAnchor.constraint(equalTo: contentView.centerYAnchor).isActive = true
    successAnimation.widthAnchor.constraint(equalToConstant: 160).isActive = true
    successAnimation.heightAnchor.constraint(equalToConstant: 160).isActive = true

    successAnimation.isHidden = true
    successAnimation.loopMode = .playOnce
}

Действие:

@objc func checkButtonTapped(){
    self.deleteWishCallback?()
    self.successAnimation.isHidden = false
    self.successAnimation.play()
}

Что бы я Хотелось бы добиться, чтобы иметь возможность набрать self.deleteWishCallback?() при закрытии self.successAnimation.play(). Есть ли способ сделать это? Ничего не нашел по этому поводу!

1 Ответ

1 голос
/ 07 мая 2020

Lott ie Основы анимации c Воспроизведение

AnimationView.play (завершение: LottieCompletionBlock?)

Воспроизводит анимацию от текущего состояния до конца своей временной шкалы. Вызывает блок завершения, когда анимация остановлена.

Параметры:: Завершение: Блок завершения, который вызывается, когда анимация завершается. Блок будет передан true , если анимация завершится, и false , если анимация была прервана. Необязательно.

Пример:

starAnimationView.play { (finished) in
      // Animation finished
      //here if finised is true you can perform the action of deleting the tableviewCell
    }

Подробнее см. Здесь https://airbnb.io/lottie/# / ios? Id = узлы включения и отключения анимации

...