Извините, что воскресил этот ответ, но в iOS 10 все изменилось, и теперь отмена возможна, и вы даже можете отменить изящно!
После iOS 10 вы можете отменить анимацию с помощью UIViewPropertyAnimator !
UIViewPropertyAnimator(duration: 2, dampingRatio: 0.4, animations: {
view.backgroundColor = .blue
})
animator.stopAnimation(true)
Если вы передадите true, анимация будет отменена и остановится там, где вы ее отменили. Метод завершения не будет вызван. Однако, если вы передадите false, вы несете ответственность за завершение анимации:
animator.finishAnimation(.start)
Вы можете закончить анимацию и оставаться в текущем состоянии (.current) или перейти в исходное состояние (.start) или в конечное состояние (.end)
Кстати, вы можете даже приостановить и перезапустить позже ...
animator.pauseAnimation()
animator.startAnimation()
Примечание. Если вы не хотите резкой отмены, вы можете отменить анимацию или даже изменить анимацию после ее приостановки!