ZoomTransitioning
provides a custom transition with image zooming animation. When you use this library with UINavigationController
, you can pop view controller with edge swiping.
Run the demo project in the Demo directory without carthage update
or pod install
.
Refer to the example project for details.
import ZoomTransitioning
ZoomTransitionSourceDelegate
to source view controller extension ImageListViewController: ZoomTransitionSourceDelegate { func transitionSourceImageView() -> UIImageView { return selectedImageView } func transitionSourceImageViewFrame(forward forward: Bool) -> CGRect { return selectedImageView.convertRect(selectedImageView.bounds, toView: view) } func transitionSourceWillBegin() { selectedImageView.hidden = true } func transitionSourceDidEnd() { selectedImageView.hidden = false } func transitionSourceDidCancel() { selectedImageView.hidden = false } }
ZoomTransitionDestinationDelegate
to destination view controller extension ImageDetailViewController: ZoomTransitionDestinationDelegate { func transitionDestinationImageViewFrame(forward forward: Bool) -> CGRect { if forward { let x: CGFloat = 0.0 let y = topLayoutGuide.length let width = view.frame.width let height = width * 2.0 / 3.0 return CGRect(x: x, y: y, width: width, height: height) } else { return largeImageView.convertRect(largeImageView.bounds, toView: view) } } func transitionDestinationWillBegin() { largeImageView.hidden = true } func transitionDestinationDidEnd(transitioningImageView imageView: UIImageView) { largeImageView.hidden = false largeImageView.image = imageView.image } func transitionDestinationDidCancel() { largeImageView.hidden = false } }
delegate
property of UINavigationController
import ZoomTransitioning class NavigationController: UINavigationController { private let zoomNavigationControllerDelegate = ZoomNavigationControllerDelegate() required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) delegate = zoomNavigationControllerDelegate } }
iOS 8.0 or higher
ZoomTransitioning is available throughCarthage. To install it, simply add the following line to your Cartfile:
github "WorldDownTown/ZoomTransitioning"
ZoomTransitioning is available through CocoaPods . To install it, simply add the following line to your Podfile:
pod 'ZoomTransitioning'
/ZoomTransitioning
folder in your project. WorldDownTown, WorldDownTown@gmail.com
ZoomTransitioning is available under the MIT license. See the LICENSE file for more info.