TransitioningKit

A Swift framework to simplify custom iOS view transitions.

Showing:

Popularity

Downloads/wk

0

GitHub Stars

68

Maintenance

Last Commit

6yrs ago

Contributors

2

Package

Dependencies

0

License

MIT

Categories

Readme

TransitioningKit

PRERELEASE

Version Carthage

TransitioningKit is a Swift framework providing a set of components for simplifying, clarifying, & standardizing the implemention of custom Navigation & View Controller transitions.

TransitioningKit currently provides three commonly needed public classes, and one public protocol:

PSNavigationControllerDelegate

A concrete implementation of the UINavigationControllerDelegate protocol.

When assigned to the delegate property of a UINavigationController, PSNavigationControllerDelegate assumes the responsibility of vending UIViewControllerAnimatedTransitioning (“animator”) and UIPercentDrivenInteractiveTransition (“interaction controller”) objects for push and pop transitions.

PSViewControllerTransitioningDelegate

A concrete implementation of the UIViewControllerTransitioningDelegate protocol.

Similar to PSNavigationControllerDelegate, when assigned to the transitioningDelegate property of a UIViewController, PSViewControllerTransitioningDelegate assumes the responsibility of vending UIViewControllerAnimatedTransitioning (“animator”), UIPercentDrivenInteractiveTransition (“interaction controller”), and UIPresentationController (“presentation controller”) objects for present and dismiss transitions.

PSPanGestureInteractionController

A subclass of UIPercentDrivenInteractiveTransition.

PSPanGestureInteractionController coordinates a UIPanGestureRecognizer to simplify implementation of common gesture driven interactive transitions. It includes simple a delegate protocol which you implement to customize behavior for your application.

PSPanGestureInteractionControllerDelegate

A custom protocol for handling PSPanGestureInteractionController events within your application.

Example

Example

Here we have a simplified example of transitioning between three view controllers.

1. First View Controller → Second View Controller

In this instance, we are seeing a custom, interactive, “push” operation between these two view controllers. Here are the parts involed in this operation:

  1. FirstViewToSecondViewPushAnimator implements the animation.
  2. FirstViewInteractionControllerDelegate handles the pan gesture.
  3. PSPanGestureInteractionController is instantiated with FirstViewInteractionControllerDelegate.
  4. PSNavigationControllerDelegate is instantiated with the interaction controller and the animator.
  5. PSNavigationControllerDelegate is assigned as the navigation controller delegate.
2. Second View Controller → Third View Controller

In this instance, we are seeing a modal “present” & “dismiss” operation between these two view controllers.

  1. ThirdViewControllerPresentAnimator and ThirdViewControllerDismissAnimator implement the animations.
  2. PSViewControllerTransitioningDelegate is instantiated with the animators.
  3. PSViewControllerTransitioningDelegate is assigned to as the modal view controller's transitioningDelegate.

Installation

Carthage

Add the following to your project's Cartfile:

github "puffinsupply/TransitioningKit" >= 0.0.1

License

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100