Skip to content

pzatorski/ValueAnimator

 
 

Repository files navigation

ValueAnimator

CI Status Version License Platform codebeat badge

  • Multiple properties in funcion 'onChanged'

Demo

Demo for UIView animation

Usage

ValueAnimator makes the transition from initial value to target value using easing functions.

Simple animation

let animator = ValueAnimator.animate("some", from: 0, to: 360, duration: 1.0,
    onChanged: { p, v in 
        print("property \(p): \(v.value)")
    },
    easing: EaseCircular.easeIn())
animator.resume()

Yoyo annimation with 2 values

let yoyoAni = ValueAnimator.animate(
    props: ["h", "w"], 
    from: [20, 30], 
    to: [5, 150], 
    duration: 1.4, 
    easing: EaseSine.easeInOut(), 
    onChanged: { p, v in
        if p == "h" {
            let width = self.rect1.bounds.width
            self.rect1.frame = CGRect(x: 24, y: 140, width: width, height:v.cg)
        } else {
            let height = self.rect1.bounds.height
            self.rect1.frame = CGRect(x: 24, y: 140, width:v.cg, height: height)
        }
    }, 
    option: ValueAnimator.OptionBuilder()
        .setYoyo(true)
        .build())
yoyoAni.resume()

Thread

ValueAnimator uses its own work-thread. But the callback changeCallback, endCallback is called in main-thread. if you wanna it called in work-thread, you just set the 'callbackOnMainThread' property is false.

let someView: UIView!
let animator = ValueAnimator.animate("some", from: 0, to: 1, duration: 1.0,
    onChanged: { p, v in 
        // called in ValueAnimator's work-thread
    },
    easing: EaseCircular.easeIn())
animator.callbackOnMainThread = false
animator.resume()

Example

To run the example project, clone the repo, and run open ValueAnimator.xcworkspace. You can see ValueAnimatorExample project.

Installation

Simply add the following line to your Podfile:

pod 'ValueAnimator'
  • Open Xcode
  • Go to File > Swift Packages > Add Package Dependency...
  • Paste this Github Repo URL (https://github.com/brownsoo/ValueAnimator) into the search bar.
  • Select the ValueAnimator repo from the search results.

Author

brownsoo, @medium

License

ValueAnimator is available under the MIT license. See the LICENSE file for more info.

About

Value transition utility

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 97.1%
  • Ruby 1.8%
  • Objective-C 1.1%