Popularity
2.3
Stable
Activity
0.0
Stable
90
4
8

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: UI     Modal Transition    

RPModalGestureTransition alternatives and similar libraries

Based on the "Modal Transition" category.
Alternatively, view RPModalGestureTransition alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of RPModalGestureTransition or a related project?

Add another 'Modal Transition' Library

README

RPModalGestureTransition


You can dismiss modal by using gesture.

Usage

1.Define animation

You define animator class inherits UIViewControllerAnimatedTransitioning. I made this in TransitionAnimator.swift.

2.Set UIViewControllerTransitioningDelegate to modal

import UIKit

extension ModalViewController: UIViewControllerTransitioningDelegate {

    func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController, sourceViewController source: UIViewController) -> UIPresentationController? {

        return BackgroundPresentationController(presentedViewController: presented, presentingViewController: presenting)
    }

    func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {

        return TransitionAnimator(isPresenting: true)
    }

    func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {

        return TransitionAnimator(isPresenting: false)
    }

    func interactionControllerForPresentation(animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
        return nil
    }

    func interactionControllerForDismissal(animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
        guard let percentInteractiveTransition = percentInteractiveTransition else {
            return nil
        }

        return percentInteractiveTransition.isInteractiveDissmalTransition ? percentInteractiveTransition : nil
    }
}

3.Set InteractiveTransition to modal

Class InteractiveTransition inherits UIPercentDrivenInteractiveTransition.

class ModalViewController: UIViewController {

    var percentInteractiveTransition: InteractiveTransition?

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)

        modalPresentationStyle = .Custom
        transitioningDelegate = self

        percentInteractiveTransition = InteractiveTransition(attachedViewController: self)
    }

4.Define interactive animation

You have to define how animation change with gesture. You check InteractiveTransition.swift.