Popularity
3.7
Stable
Activity
0.0
Stable
220
11
14

Programming language: Swift
License: MIT License
Tags: Animation     UI    
Latest version: v0.4.0

TheAnimation alternatives and similar libraries

Based on the "Animation" category.
Alternatively, view TheAnimation alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of TheAnimation or a related project?

Add another 'Animation' Library

README

TheAnimation

TheAnimation is Type-safe CAAnimation wrapper.

[](./Images/basic_animation.png)

Introduction

For example, if you want to animate backgroundColor with CABasicAnimation, you need to consider type because fromValue property and so on are Any?.

[](./Images/background_raw.png)

If you use BasicAnimation of TheAnimation, you can animate backgroundColor without considering type! (AnimationKeyPaths.backgroundColor is AnimationKeyPath<CGColor> type.)

[](./Images/background.png)

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<CGFloat>(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.


*Note that all licence references and agreements mentioned in the TheAnimation README section above are relevant to that project's source code only.