TransitionManager alternatives and similar libraries
Based on the "Transition" category.
Alternatively, view TransitionManager alternatives based on common mentions on social networks and blogs.
-
TLYShyNavBar
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. -
SPStorkController
Now playing controller from Apple Music, Mail & Podcasts Apple's apps. -
Transition
Easy interactive interruptible custom ViewController transitions -
ElasticTransition
A UIKit custom transition that simulates an elastic drag. Written in Swift. -
PinterestSwift
This is a Swift based demo project to show how to make the transition Pinterest liked. -
EasyTransitions
A simple way to create custom interactive UIViewController transitions -
RevealingSplashView
A Splash view that animates and reveals its content, inspired by Twitter splash -
SPLarkController
Custom transition between controllers. Settings controller for your iOS app. -
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. -
LiquidSwipe
Example of using SwiftUI to create a beautiful Liquid Swipe control -
AudioIndicatorBars
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. -
ImageTransition
Library for smooth animation of images during transitions. -
NavigationTransitions
Pure SwiftUI Navigation transitions ✨ -
PanSlip
Use PanGesture to dismiss view on UIViewController and UIView
Appwrite - The Open Source Firebase alternative introduces iOS support
* 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
/TransitionManager
folder in your project. - Congratulations!
Usage
Copy & paste TransitionManager.swift
into your project.
- Declare a
TransitionManager
object. - 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
interactionTransitionController
and either pop or push navigation controller when gesture (interaction) starts. - Calculate your
percent
s on gesture change andupdateInteractiveTransition:
with that percent - When gesture ended, decide if your transition complete or not and give information to your
interactionTransitionController
withfinishInteractiveTransition ()
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