github

roberthein / Ease

  • суббота, 16 декабря 2017 г. в 03:14:16
https://github.com/roberthein/Ease


Animate everything with Ease



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

Ease

SceneKit example 👆

UIGestureRecognizer - UIScrollView - Gyroscope 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(initialValue: view.center)

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.