转载

[iOS] ZoomTransitioning:提供一个自定义转场及图像缩放动画组件控制

ZoomTransitioning

Overview

ZoomTransitioning provides a custom transition with image zooming animation. When you use this library with UINavigationController , you can pop view controller with edge swiping.

[iOS] ZoomTransitioning:提供一个自定义转场及图像缩放动画组件控制

Demo

Run the demo project in the Demo directory without carthage update or pod install .

Usage

Refer to the example project for details.

import ZoomTransitioning

Adopt 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     } }

Adopt 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     } }

set delegate property of UINavigationController

import ZoomTransitioning  class NavigationController: UINavigationController {      private let zoomNavigationControllerDelegate = ZoomNavigationControllerDelegate()      required init?(coder aDecoder: NSCoder) {         super.init(coder: aDecoder)          delegate = zoomNavigationControllerDelegate     } }

Requirements

iOS 8.0 or higher

Installation

Carthage

ZoomTransitioning is available throughCarthage. To install it, simply add the following line to your Cartfile:

github "WorldDownTown/ZoomTransitioning"

CocoaPods

ZoomTransitioning is available through CocoaPods . To install it, simply add the following line to your Podfile:

pod 'ZoomTransitioning'

Manually

  1. Download and drop /ZoomTransitioning folder in your project.
  2. Congratulations!

Author

WorldDownTown, WorldDownTown@gmail.com

License

ZoomTransitioning is available under the MIT license. See the LICENSE file for more info.

原文  https://github.com/WorldDownTown/ZoomTransitioning
正文到此结束
Loading...