В iOS "Spring" библиотека для анимации. Нужно ли устанавливать свойство "animation" каждый раз перед вызовом метода "animate()"?

Я использую библиотеку Spring для анимационных эффектов в моем приложении.

В моем случае мне нужно анимировать кнопку действия, поэтому я добавил следующие блоки кода.

override func viewDidLoad() {
    super.viewDidLoad()
    setOptions()
}
func setOptions() {
    testButton.animation = Spring.AnimationPreset.Shake.rawValue
    testButton.curve = Spring.AnimationCurve.EaseIn.rawValue
}
@IBAction func testButtonPressed(_ sender: Any) {
    animateView()
}

В этом вышеупомянутом потоке кода действие анимации происходит только один раз.

Но если я обновлю метод "testButtonPressed" следующим образом,

@IBAction func testButtonPressed(_ sender: Any) {
    setOptions()
    animateView()
}

Анимация происходит каждый раз, когда я нажимаю кнопку testButton.

Почему я должен обновлять свойство анимации каждый раз? Разве не достаточно обновить свойства только один раз?

1 ответ

В библиотеке кажется, что resetAll удаляет тип анимации и все атрибуты, следующие за выполнением анимации. Этот метод вызывается при завершении блока анимации в файле Spring.

Вот ссылка на рассматриваемый файл Spring, а также копия функции, которая удаляет анимацию.

func resetAll() {
    x = 0
    y = 0
    animation = ""
    opacity = 1
    scaleX = 1
    scaleY = 1
    rotate = 0
    damping = 0.7
    velocity = 0.7
    repeatCount = 1
    delay = 0
    duration = 0.7
}

Надеюсь, это поможет вам понять, почему анимация удаляется, пока вы не сбросите тип анимации.

Другие вопросы по тегам