Motion — это движок анимации для пользовательских интерфейсов, управляемых жестами. Предназначен для анимаций и взаимодействий на iOS, macOS и tvOS, он работает на SIMD и полностью написан на Swift. Motion позволяет легко создавать физически смоделированные, прерываемые анимации (например, пружины, угасания и т.д.), которые работают рука об руку с распознаванием жестов, что делать возможным наиболее плавные и восхитительные взаимодействия.
Пример пружинной анимации:
let springAnimation = SpringAnimation<CGRect>() springAnimation.configure(response: 0.30, damping: 0.64) springAnimation.toValue = CGRect(x: 0.0, y: 0.0, width: 320.0, height: 320.0) springAnimation.velocity = CGRect(x: 0.0, y: 0.0, width: -200.0, height: -200.0) springAnimation.onValueChanged(disableActions: true) { newValue in view.layer.bounds = newValue } springAnimation.completion = { [weak self] in // all done self?.animationDone() } springAnimation.start()
Библиотека: https://github.com/b3ll/Motion