Skip to content

A library of custom iOS View Controller Animations and Interactions.

License

Notifications You must be signed in to change notification settings

tuannguyenanh177/RZTransitions

 
 

Repository files navigation

RZTransitions

Build Status

============

RZTransitions is a library to help make iOS7 custom View Controller transitions slick and simple.


Overview

Installation

CocoaPods (Recommended)

Add the following to your Podfile:

pod 'RZTransitions'

RZTransitions follows semantic versioning conventions. Check the releases page for the latest updates and version history.

Manual Installation

Copy and add all of the files in the RZTransitions directory (and its subdirectories) into your project.

Setting a New Default Transition

Swift

```Swift RZTransitionsManager.shared().defaultPresentDismissAnimationController = RZZoomAlphaAnimationController() RZTransitionsManager.shared().defaultPushPopAnimationController = RZCardSlideAnimationController() ```

Objective C

```objective-c id presentDismissAnimationController = [[RZZoomAlphaAnimationController alloc] init]; id pushPopAnimationController = [[RZCardSlideAnimationController alloc] init]; [[RZTransitionsManager shared] setDefaultPresentDismissAnimationController:presentDismissAnimationController]; [[RZTransitionsManager shared] setDefaultPushPopAnimationController:pushPopAnimationController]; ```

When Presenting a View Controller

Swift

```Swift self.transitioningDelegate = RZTransitionsManager.shared() let nextViewController = UIViewController() nextViewController.transitioningDelegate = RZTransitionsManager.shared() self.presentViewController(nextViewController, animated:true) {} ```

Objective C

```objective-c [self setTransitioningDelegate:[RZTransitionsManager shared]]; UIViewController *nextViewController = [[UIViewController alloc] init]; [nextViewController setTransitioningDelegate:[RZTransitionsManager shared]]; [self presentViewController:nextViewController animated:YES completion:nil]; ```

When creating a Navigation Controller ( or use RZTransitionsNavigationController )

Swift

```Swift let navigationController = UINavigationController() navigationController.delegate = RZTransitionsManager.shared() ```

Objective C

```objective-c UINavigationController *navigationController = [[UINavigationController alloc] init]; [navigationController setDelegate:[RZTransitionsManager shared]]; ```

Specifying Transitions for Specific View Controllers

Swift

```Swift RZTransitionsManager.shared().setAnimationController( RZZoomPushAnimationController(), fromViewController:self.dynamicType, toViewController:RZSimpleCollectionViewController.self, forAction:.PushPop) ```

Objective C

```objective-c // Use the RZZoomPushAnimationController when pushing from this view controller to a // RZSimpleCollectionViewController or popping from a RZSimpleCollectionViewController to // this view controller. [[RZTransitionsManager shared] setAnimationController:[[RZZoomPushAnimationController alloc] init] fromViewController:[self class] toViewController:[RZSimpleCollectionViewController class] forAction:RZTransitionAction_PushPop]; ```

Hooking up Interactors

Swift

```Swift override func viewDidLoad() { super.viewDidLoad()
self.presentInteractionController = RZVerticalSwipeInteractionController()
if let vc = self.presentInteractionController as? RZVerticalSwipeInteractionController {
    vc.nextViewControllerDelegate = self
    vc.attachViewController(self, withAction:.Present)
}

}

override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) RZTransitionsManager.shared().setInteractionController( self.presentInteractionController, fromViewController:self.dynamicType, toViewController:nil, forAction:.Present) }

<p align="right">Objective C</p>
```objective-c
@property (nonatomic, strong) id<RZTransitionInteractionController> presentInteractionController;

- (void)viewDidLoad
{
   [super viewDidLoad];
	// Create the presentation interaction controller that allows a custom gesture
	// to control presenting a new VC via a presentViewController
   self.presentInteractionController = [[RZVerticalSwipeInteractionController alloc] init];
   [self.presentInteractionController setNextViewControllerDelegate:self];
   [self.presentInteractionController attachViewController:self withAction:RZTransitionAction_Present];
}

- (void)viewWillAppear:(BOOL)animated
{
   [super viewWillAppear:animated];
	//  Use the present interaction controller for presenting any view controller from this view controller
   [[RZTransitionsManager shared] setInteractionController:self.presentInteractionController
                                        fromViewController:[self class]
                                          toViewController:nil
                                                 forAction:RZTransitionAction_Present];
}

Features

  • A comprehensive library of animation controllers
  • A comprehensive library of interaction controllers
  • Mix and match any animation controller with any interaction controller
  • A shared instance manager that helps wrap the iOS7 custom transition protocol to expose a friendlier API

You can use any of the animation controllers or interaction controllers without the RZTransitionsManager and simply use them with the iOS7 custom View Controller transition APIs.

Maintainers

arrouse (@arrouse88)

nbonatsakis (@nickbona)

dostrander (@_Derko)

markpragma (@markpragma )

rztakashi

Contributors

smbarne (@smbarne)

License

RZTransitions is licensed under the MIT license. See the LICENSE file for details.

About

A library of custom iOS View Controller Animations and Interactions.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 88.0%
  • Swift 9.8%
  • Ruby 1.2%
  • C 1.0%