Как остановить анимацию UIView в Swift - PullRequest
0 голосов
/ 19 декабря 2018

Я работаю с языком Swift.Я написал анимацию для таймера, которая длится 30 секунд и полна.Сейчас я хочу остановить эту анимацию, но я не знаю как!Я хочу иметь возможность начать заново с самого начала.Анимация.Спасибо, если у вас есть решение или метод, который мне помогает?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Два возможных способа:

  • Где-то хранить переменную для общего времени.И в каждом таймере повторите увеличение этого значения.Когда общее время достигнет 30 секунд, удалите анимацию
  • . При запуске анимации установите действие, которое будет выполнено через определенное время

Первый возможный способ:

var time: Double = 0

@objc func timerChangedValue() {
    time += 1
    if time == 30 {
        view.layer.removeAllAnimations()
        view.layoutIfNeeded()
    }
}

Второй возможный способ:

DispatchQueue.main.asyncAfter(deadline: .now() + 30) {
    self.view.layer.removeAllAnimations()
    self.view.layoutIfNeeded()
}
0 голосов
/ 19 декабря 2018

Можно попробовать

self.myView.layer.removeAllAnimations()
...