TransitionManager alternatives and similar libraries
Based on the "Transition" category.
Alternatively, view TransitionManager alternatives based on common mentions on social networks and blogs.
-
TLYShyNavBar
DISCONTINUED. Unlike all those arrogant UINavigationBar, this one is shy and humble! Easily create auto-scrolling navigation bars! -
StarWars.iOS
This component implements transition animation to crumble view-controller into tiny pieces. -
BubbleTransition
A custom modal transition that presents and dismiss a controller with an expanding bubble effect. -
PinterestSwift
This is a Swift based demo project to show how to make the transition Pinterest liked. -
ImageOpenTransition
Beautiful and precise transitions between ViewControllers images written in Swift. -
MusicPlayerTransition
Custom interactive transition like Apple Music iOS App (iOS 9). written in Swift. -
AudioIndicatorBars
DISCONTINUED. AIB indicates for your app users which audio is playing. Just like the Podcasts app. -
SamuraiTransition
SamuraiTransition is an open source Swift based library providing a collection of ViewController transitions featuring a number of neat “cutting” animations.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of TransitionManager or a related project?
README
TransitionManager
Painless custom transitioning. Easy extend, easy setup, just focus on animations.
Installation
CocoaPods
You can use CocoaPods to install TransitionManager by adding it to your Podfile:
platform :ios, '8.0'
use_frameworks!
pod 'TransitionManager'
To get the full benefits import TransitionManager wherever you import UIKit
import UIKit
import TransitionManager
Manually
- Download and drop
/TransitionManagerfolder in your project. - Congratulations!
Usage
Copy & paste TransitionManager.swift into your project.
- Declare a
TransitionManagerobject. - Init it with a
TransitionManagerAnimation - Assign it as your navigation controller's delegate if you use navigation controller.
- Else assign it as your view controller's
transitioningDelegate.
- Else assign it as your view controller's
var transition: TransitionManager!
override func viewDidLoad() {
super.viewDidLoad()
transition = TransitionManager (transitionAnimation: FadeTransitionAnimation())
navigationController?.delegate = transition
}
Creating Transition Animations
Create a subclass of TransitionManagerAnimation
class FadeTransitionAnimation: TransitionManagerAnimation {
}
TransitionManagerAnimation class implements TransitionManagerDelegate protocol.
TransitionManagerDelegate
protocol TransitionManagerDelegate {
/// Transition nimation method implementation
func transition(
container: UIView,
fromViewController: UIViewController,
toViewController: UIViewController,
isDismissing: Bool,
duration: NSTimeInterval,
completion: () -> Void)
/// Interactive transitions,
/// update percent in gesture handler
var interactionTransitionController: UIPercentDrivenInteractiveTransition? { get set }
}
For transition animation, we should override transition func and write our custom animation in it.
class FadeTransitionAnimation: TransitionManagerAnimation {
override func transition(
container: UIView,
fromViewController: UIViewController,
toViewController: UIViewController,
isDismissing: Bool,
duration: NSTimeInterval,
completion: () -> Void) {
if isDismissing {
closeAnimation(container,
fromViewController: fromViewController,
toViewController: toViewController,
duration: duration,
completion: completion)
} else {
openAnimation(container,
fromViewController: fromViewController,
toViewController: toViewController,
duration: duration,
completion: completion)
}
}
}
One important part is completion() must be called because the TransitionManager finishes transition after it gets called.
Interaction Transition
Interaction transition has 3 parts:
- Init
interactionTransitionControllerand either pop or push navigation controller when gesture (interaction) starts. - Calculate your
percents on gesture change andupdateInteractiveTransition:with that percent - When gesture ended, decide if your transition complete or not and give information to your
interactionTransitionControllerwithfinishInteractiveTransition ()andcancelInteractiveTransition ()
Easier TransitionManager setup
You can create a TransitionManagerAnimation container enum and give it all your animations
enum TransitionManagerAnimations {
case Fade
case Pull
}
Write a func that returns correct transition animation in enum
enum TransitionManagerAnimations {
case Fade
case Pull
func transitionAnimation () -> TransitionManagerAnimation {
switch self {
case .Fade:
return FadeTransitionAnimation()
case .Pull:
return PullTransitionAnimation()
}
}
}
Extend TransitionManager and write a new init method like
extension TransitionManager {
convenience init(transition: TransitionManagerAnimations) {
self.init(transitionAnimation: transition.transitionAnimation())
}
}
Now you can create TransitionManager in your view controller like
transition = TransitionManager(transition: .Pull)
navigationController?.delegate = transition