Ease is an event driven animation system that combines the observer pattern with custom spring animations as observers. It's magic.
targetValueEasily extendible with more (custom) types.
Create your Ease object with an initial value
var ease: Ease<CGPoint> = Ease(view.center, minimumStep: 0.001)
Add your custom spring-animation(s)
ease.addSpring(tension: 300, damping: 15, mass: 1) { position in
view.center = position
}
Set the target value of your Ease object and adjust your target as often as you want
ease.targetValue = gestureRecognizer.location(in: view)
For a single spring-animation you can store the returned EaseDisposable to a variable
disposable = ease.addSpring(tension...
For multiple spring-animations you can add the disposable to a EaseDisposal variable
ease.addSpring(tension...) { }.add(to: &disposal)
And always weakify self when referencing self inside your spring-animation
ease.addSpring(tension...) { [weak self] position in
Ease is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Ease'
Feel free to create a pull request, open an issue or find me on Twitter.
35 followers · starred Dec 2017
847 followers · starred Jul 2018
10 followers · starred Dec 2017
471 followers · starred Jan 2019
Ease is an event driven animation system that combines the observer pattern with custom spring animations as observers. It's magic.
targetValueEasily extendible with more (custom) types.
Create your Ease object with an initial value
var ease: Ease<CGPoint> = Ease(view.center, minimumStep: 0.001)
Add your custom spring-animation(s)
ease.addSpring(tension: 300, damping: 15, mass: 1) { position in
view.center = position
}
Set the target value of your Ease object and adjust your target as often as you want
ease.targetValue = gestureRecognizer.location(in: view)
For a single spring-animation you can store the returned EaseDisposable to a variable
disposable = ease.addSpring(tension...
For multiple spring-animations you can add the disposable to a EaseDisposal variable
ease.addSpring(tension...) { }.add(to: &disposal)
And always weakify self when referencing self inside your spring-animation
ease.addSpring(tension...) { [weak self] position in
Ease is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Ease'
Feel free to create a pull request, open an issue or find me on Twitter.
35 followers · starred Dec 2017
847 followers · starred Jul 2018
10 followers · starred Dec 2017
471 followers · starred Jan 2019