В 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
}
Надеюсь, это поможет вам понять, почему анимация удаляется, пока вы не сбросите тип анимации.