Animate everything with Ease
Switch branches/tags
Nothing to show
Clone or download
Latest commit cfaf0e1 Nov 16, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Art Updates for 2.0 Jul 7, 2018
Ease Add Projection. Nov 16, 2018
Example Updates for 2.0 Jul 7, 2018
HeaderExample Updates for 2.0 Jul 7, 2018
.gitignore Initial commit. Dec 13, 2017
.swift-version Updates for 2.0 Jul 7, 2018
.travis.yml Initial commit. Dec 13, 2017
Ease.podspec Updates for 2.0 Jul 7, 2018
LICENSE Initial commit. Dec 13, 2017
README.md Updates for 2.0 Jul 7, 2018
_Pods.xcodeproj Initial commit. Dec 13, 2017

README.md

Ease

Ease is a event driven animation system that combines the observer pattern with custom spring animations as observers.

Ease
SceneKit Example👆

UIGestureRecognizer, UIScrollView and Gyroscope based Examples👆

Features

  • Swift 4
  • supports iOS 9 and up
  • supported value types are: CGFloat, CGPoint, CGSize, CGVector, Int, Float, Double, SCNVector3

How

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)

Memory management

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

Installation

Ease is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Ease'

Suggestions or feedback?

Feel free to create a pull request, open an issue or find me on Twitter.