Как остановить анимацию UIView в Swift

88
7

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

спросил(а) 2021-01-25T14:43:11+03:00 4 месяца, 4 недели назад
1
Решение
99

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

    Где-то хранится переменная для общего времени. И в каждом таймере повторите увеличение этого значения. Когда общее время достигнет 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()
}

ответил(а) 2021-01-25T14:43:11+03:00 4 месяца, 4 недели назад
45

Ты можешь попробовать

self.myView.layer.removeAllAnimations()

ответил(а) 2021-01-25T14:43:11+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема