• This repository has been archived on 27/Jul/2020
  • Stars
    star
    474
  • Rank 92,640 (Top 2 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple zoom transition using iOS 7 Custom View Controller Transitions API

CocoaPod platform Β  CocoaPod version Β  Packagist

ZoomInteractiveTransition

Simple zoom transition, inspired by iOS 7 Photos.app. Example:

Project status

This project is a showcase of what's possible rather than completely ready drop-in framework. If you are looking for more full-fledged and actively developed solution, I suggest looking at Hero.

Usage

1. Create ZoomInteractiveTransition instance and pass your UINavigationController to constructor.

self.transition = [[ZoomInteractiveTransition alloc] initWithNavigationController:self.navigationController];

2. Adopt ZoomTransitionProtocol by both source and destination view controllers and implement a single method

-(UIView *)viewForZoomTransition:(BOOL)isSource
{
  return <view for zooming>;
}

And that's it! All frame calculation and animations are performed automatically. ZoomInteractiveTransition creates a snapshot of source and destination view, chooses bigger one, and uses this snapshot to animate between source and destination view.

Requirements

  • iOS 7
  • ARC

Customization

Available customizations:

  • Duration
  • Animation curve
  • Interactive pop back gesture
  • Initial snapshot
  • Completion block

Additionally, you can plug in your own keyframe animations, that will run alongside interactive transition. These can be supplied via optional method animationBlockForZoomTransition.

Example

Example with cats is provided in ZoomTransitionExample folder.

Note: PlaceKit.framework, that is used in Example project, requires ssh key to clone it's repository, so you may need to add Github SSH key on your local machine to be able to install example project. Instructions.