Welcome to Motion

Motion is a new tool used to create transition animations between view controllers.

Features

  • Add animations to views and layers.
  • Setup custom transition animations between view controllers.

Communication

Installation

Embedded frameworks require a minimum deployment target of iOS 8.

Visit the Installation page to learn how to install Motion using CocoaPods and Carthage.

Changelog

Motion is a growing project and will encounter changes throughout its development. It is recommended that the Changelog be reviewed prior to updating versions.

Motion Animations

You can add animations to any UIView or CALayer using the motion API. For example, to change the background color of a view with a 45 degree rotation:

view.motion(.backgroundColor(.blue).rotationAngle(45))Copy the code

Motion Transitions

Motion allows for view controllers to animate between each other. By adding a value to a view’s motionIdentifier property, a view will animate to the look of another view. For example, animating a floating button to a bar:

From View Controller

button.motionIdentifier = "options"Copy the code

Motion Transition Animations

View animations may be added to views that are transitioning using the motionAnimations property.

bar.motionAnimations = [.delay(0.35).duration(3)]Copy the code

Motion Delegate

Use the MotionDelegate to tap into key parts of a transition between view controllers. The available delegation methods are:

func motion(motion: Motion, willTransition fromView: UIView, toView: UIView)

func motion(motion: Motion, didTransition fromView: UIView, toView: UIView)

func motionModifyDelay(motion: Motion) -> TimeIntervalCopy the code

License

Copyright (C) 2015 – 2017, Daniel Dahan and CosmicMind, Inc. cosmicmind.com. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this

    list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of CosmicMind nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.