Popularity
4.5
Growing
Activity
0.0
Declining
306
11
40

Description

SwipeTransition allows trendy transitions using swipe gesture such as "swipe back".

Programming language: Swift
License: MIT License
Tags: Animation     Swift     Gesture     UI     Objective C     Transition    
Latest version: v0.4.3

SwipeTransition alternatives and similar libraries

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

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

Add another 'Transition' Library

README

logotype-a

Build Status Carthage compatible pods Platform Swift Version Objective-C compatible

SwipeTransition allows trendy transitions using swipe gesture such as "swipe back".

Try the demo on the web (appetize.io): https://appetize.io/app/pebm8kveqhfj3wn204adn0xu8r

Features

  • [x] Swipe back anywhere.
  • [x] Swipe to dismiss anywhere.
  • [x] Apply to all view controllers automatically!
  • [x] No conflict of gestures on UIScrollView, UITableView, UICollectionView and so on.

Requirements

  • Xcode 10.2 (10.0+)
  • Swift 5 (4.2+)
  • iOS 8.0+

Installation

Carthage

github "tattn/SwipeTransition"

CocoaPods

pod "SwipeTransition"
pod "SwipeTransitionAutoSwipeBack"      # if needed
pod "SwipeTransitionAutoSwipeToDismiss" # if needed

Usage

The easiest way to use

Just setting these frameworks in the Linked Frameworks and Libraries, it works. (if you use Carthage)

Linked Frameworks and Libraries

Notes: these frameworks use Method Swizzling.

If you want to set up manually without Method Swizzling, please use SwipeTransition.framework only.

Manually set up

Notes: if you use AutoSwipeBack.framework, these are unnecessary.

Just use SwipeBackNavigationController instead of UINavigationController. Of course, you can set it with Interface Builder.

let viewController = UIViewController()
let navigationController = SwipeBackNavigationController(rootViewControlelr: viewController)

Another way is to set swipeBack.

class CustomNavigationController: UINavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
        swipeBack = SwipeBackController(navigationController: self)
    }
}

Notes: if you use AutoSwipeToDismiss.framework, these are unnecessary.

Just use SwipeToDismissNavigationController instead of UINavigationController. Of course, you can set it with Interface Builder.

let viewController = UIViewController()
let navigationController = SwipeToDismissNavigationController(rootViewControlelr: viewController)

Another way is to set swipeToDismiss.

class CustomNavigationController: UINavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
        modalPresentationStyle = .fullScreen
        swipeToDismiss = SwipeToDismissController(viewController: self)
    }
}

Enable/Disable gestures

Use isEnabled property.

self.navigationController?.swipeBack?.isEnabled = false
self.swipeToDismiss?.isEnabled = false

Configuration

You can also change the behavior such as animation.

SwipeBackConfiguration.shared.parallaxFactor = 0.6

SwipeToDismissConfiguration.shared.dismissHeightRatio = 0.5

Inheriting the configure class, you can set it with computed property.

class CustomSwipeBackConfiguration: SwipeBackConfiguration {
    override var transitionDuration: TimeInterval {
        get { return 1.5 }
        set { super.transitionDuration = newValue }
    }
}

SwipeBackConfiguration.shared = CustomSwipeBackConfiguration()

Other usage

See this wiki

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Support this project

Donating to help me continue working on this project.

Donate

ToDo

  • [ ] All .modalPresentationStyle support
  • [ ] Animation support (fade / custom)
  • [ ] Some transition styles support (e.g. right to left swipe transition)

License

SwipeTransition is released under the MIT license. See LICENSE for details.


*Note that all licence references and agreements mentioned in the SwipeTransition README section above are relevant to that project's source code only.