Need help with TheAnimation?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

marty-suzuki
214 Stars 11 Forks MIT License 25 Commits 1 Opened issues

Description

Type-safe CAAnimation wrapper. It makes preventing to set wrong type values.

Services available

!
?

Need anything else?

Contributors list

# 11,188
Swift
Objecti...
syntax-...
watchos
16 commits
# 14,548
Swift
rxswift
Objecti...
iOS
7 commits

TheAnimation

Platform Language Carthage Version License CI Status

TheAnimation is Type-safe CAAnimation wrapper.

Introduction

For example, if you want to animate

backgroundColor
with
CABasicAnimation
, you need to consider type because fromValue property and so on are
Any?
.

If you use

BasicAnimation of TheAnimation
, you can animate
backgroundColor
without considering type! (
AnimationKeyPaths.backgroundColor
is
AnimationKeyPath
type.)

Usage

The way of making an animation is almost similar

CAAnimation
. But you need to use
animation.animate(in:)
method instead of using
layer.add(_:forKey:)
.
let view = UIView()

let animation = BasicAnimation(keyPath: .opacity) animation.fromValue = 0 animation.toValue = 1 animation.duration = 1 animation.animate(in: view)

animation.animate(in:)
returns
AnimaitonCanceller
. You can cancel an animation with it.
let canceller = animation.animate(in: view)
canceller.cancelAnimation()

Example

To run the example project, clone the repo, and open Example directory.

Correspondence Table

| CAAnimation | TheAnimation | | :-: | :-: | | CAPropertyAnimation | PropertyAnimation | | CABasicAnimation | BasicAnimation | | CAKeyframeAnimation | KeyframeAnimation | | CASpringAnimation | SpringAnimation | | CATransition | TransitionAnimation | | CAAnimationGroup | AnimationGroup |

Add new
AnimationKeyPath

You can add

AnimationKeyPath
like this.
extension AnimationKeyPaths {
    static let newKeyPath = AnimationKeyPath(keyPath: "abcd")
}

Handle animation did
Start
/
Stop

You can handle animation did Start with

func setAnimationDidStart(handler:)
. In addition, you can handle animation did Stop with
func setAnimationDidStop(handler:)
.
let view = UIView()

let animation = BasicAnimation(keyPath: .opacity) animation.fromValue = 0 animation.toValue = 1 animation.duration = 1

animation.setAnimationDidStart { // do something }

animation.setAnimationDidStop { finished in // do something }

animation.animate(in: view)

Requirements

  • Xcode 9.3
  • iOS 9 or greater
  • tvOS 9 or greater
  • macOS 10.11 or greater
  • Swift 4.2 (since 0.3.0)

Installation

Carthage

If you’re using Carthage, simply add TheAnimation to your

Cartfile
:
github "marty-suzuki/TheAnimation"

CocoaPods

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

pod 'TheAnimation'

Author

marty-suzuki, [email protected]

License

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.