Skip to content

iOS 요기요 에서 사용하는 외부 라이브러리

License

Notifications You must be signed in to change notification settings

yogiyo/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, @hansoo.labs

License

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

About

iOS 요기요 에서 사용하는 외부 라이브러리

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 96.9%
  • Ruby 2.0%
  • Objective-C 1.1%