All Projects → WorldDownTown → Zoomtransitioning

WorldDownTown / Zoomtransitioning

Licence: mit
ZoomTransitioning provides a custom transition with image zooming animation and swiping the screen edge.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Zoomtransitioning

Gradientview
Easily use gradients in UIKit for iOS & tvOS
Stars: ✭ 610 (-8.96%)
Mutual labels:  cocoapods, carthage
Kydrawercontroller
Side Drawer Navigation Controller similar to Android
Stars: ✭ 632 (-5.67%)
Mutual labels:  cocoapods, carthage
Sdwebimage
Asynchronous image downloader with cache support as a UIImageView category
Stars: ✭ 23,928 (+3471.34%)
Mutual labels:  cocoapods, carthage
Multiprogressview
📊 An animatable view that depicts multiple progresses over time. Modeled after UIProgressView
Stars: ✭ 614 (-8.36%)
Mutual labels:  cocoapods, carthage
Interactivesidemenu
iOS Interactive Side Menu written in Swift.
Stars: ✭ 668 (-0.3%)
Mutual labels:  cocoapods, carthage
Stlocationrequest
Request the Location Services via a 3D 360° flyover MKMapView 🗺
Stars: ✭ 636 (-5.07%)
Mutual labels:  cocoapods, carthage
Sidemenu
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less.
Stars: ✭ 5,267 (+686.12%)
Mutual labels:  cocoapods, carthage
Bow
🏹 Bow is a cross-platform library for Typed Functional Programming in Swift
Stars: ✭ 538 (-19.7%)
Mutual labels:  cocoapods, carthage
Pdfgenerator
A simple generator of PDF written in Swift.
Stars: ✭ 629 (-6.12%)
Mutual labels:  cocoapods, carthage
Urlembeddedview
URLEmbeddedView automatically caches the object that is confirmed the Open Graph Protocol.
Stars: ✭ 633 (-5.52%)
Mutual labels:  cocoapods, carthage
Swiftoverlays
SwiftOverlays is a Swift GUI library for displaying various popups and notifications
Stars: ✭ 621 (-7.31%)
Mutual labels:  cocoapods, carthage
Jlroutes
URL routing library for iOS with a simple block-based API
Stars: ✭ 5,528 (+725.07%)
Mutual labels:  cocoapods, carthage
Guitar
A Cross-Platform String and Regular Expression Library written in Swift.
Stars: ✭ 641 (-4.33%)
Mutual labels:  cocoapods, carthage
Orsserialport
Serial port library for Objective-C and Swift macOS apps
Stars: ✭ 609 (-9.1%)
Mutual labels:  cocoapods, carthage
Sablurimageview
You can use blur effect and it's animation easily to call only two methods.
Stars: ✭ 538 (-19.7%)
Mutual labels:  cocoapods, carthage
Swiftinstagram
Instagram API client written in Swift
Stars: ✭ 570 (-14.93%)
Mutual labels:  cocoapods, carthage
Anim
Swift animation library for iOS, tvOS and macOS.
Stars: ✭ 520 (-22.39%)
Mutual labels:  cocoapods, carthage
Swiftframeworktemplate
A template for new Swift iOS / macOS / tvOS / watchOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file
Stars: ✭ 527 (-21.34%)
Mutual labels:  cocoapods, carthage
Haptica
Easy Haptic Feedback Generator 📳
Stars: ✭ 587 (-12.39%)
Mutual labels:  cocoapods, carthage
Flyoverkit
360° flyover on a MKMapView 🚁
Stars: ✭ 666 (-0.6%)
Mutual labels:  cocoapods, carthage

ZoomTransitioning

Join the chat at https://gitter.im/WorldDownTown/ZoomTransitioning

License Swift Carthage compatible CocoaPods compatible CocoaPods Awesome

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.

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

  • Swift 4.0
  • iOS 9.0 or later

If you use Swift 2.2, use 1.3.0

Installation

Carthage

ZoomTransitioning is available through Carthage. 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 /ZoomTransitioningfolder in your project.
  2. Congratulations!

Author

WorldDownTown, [email protected]

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].