TransitionTreasury alternatives and similar libraries
Based on the "UI" category.
Alternatively, view TransitionTreasury alternatives based on common mentions on social networks and blogs.
-
Lottie
An iOS library to natively render After Effects vector animations -
IGListKit
A data-driven UICollectionView framework for building fast and flexible lists. -
DZNEmptyDataSet
A drop-in UITableView/UICollectionView superclass category for showing empty datasets whenever the view has no content to display -
AsyncDisplayKit
Smooth asynchronous user interfaces for iOS apps. -
IQKeyboardManager
Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more. -
iCarousel
A simple, highly customisable, data-driven 3D carousel for iOS and Mac OS -
SVProgressHUD
A clean and lightweight progress HUD for your iOS and tvOS app. -
Material
A UI/UX framework for creating beautiful applications. -
SkeletonView
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting -
TTTAttributedLabel
A drop-in replacement for UILabel that supports attributes, data detectors, links, and more -
animated-tab-bar
:octocat: RAMAnimatedTabBarController is a Swift UI module library for adding animation to iOS tabbar items and icons. iOS library made by @Ramotion -
folding-cell
:octocat: 📃 FoldingCell is an expanding content cell with animation made by @Ramotion -
FSCalendar
A fully customizable iOS calendar library, compatible with Objective-C and Swift -
NVActivityIndicatorView
A collection of awesome loading animations -
MGSwipeTableCell
An easy to use UITableViewCell subclass that allows to display swippable buttons with a variety of transitions. -
RESideMenu
iOS 7/8 style side menu with parallax effect. -
SWTableViewCell
An easy-to-use UITableViewCell subclass that implements a swippable content view which exposes utility buttons (similar to iOS 7 Mail Application) -
FlatUIKit
A collection of awesome flat UI components for iOS. -
LTMorphingLabel
[EXPERIMENTAL] Graceful morphing effects for UILabel written in Swift. -
JVFloatLabeledTextField
UITextField subclass with floating labels - inspired by Matt D. Smith's design: http://dribbble.com/shots/1254439--GIF-Mobile-Form-Interaction?list=users -
JTAppleCalendar
The Unofficial Apple iOS Swift Calendar View. Swift calendar Library. iOS calendar Control. 100% Customizable -
TPKeyboardAvoiding
A drop-in universal solution for moving text fields out of the way of the keyboard in iOS -
FSPagerView
FSPagerView is an elegant Screen Slide Library. It is extremely helpful for making Banner View、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders. -
SwiftMessages
A very flexible message bar for iOS written in Swift. -
ViewAnimator
ViewAnimator brings your UI to life with just one line -
XLForm
XLForm is the most flexible and powerful iOS library to create dynamic table-view forms. Fully compatible with Swift & Obj-C. -
SCLAlertView-Swift
Beautiful animated Alert View. Written in Swift -
SVPullToRefresh
Give pull-to-refresh & infinite scrolling to any UIScrollView with 1 line of code. -
PageMenu
A paging menu controller built from other view controllers placed inside a scroll view (like Spotify, Windows Phone, Instagram) -
SwipeCellKit
Swipeable UITableViewCell/UICollectionViewCell based on the stock Mail.app, implemented in Swift. -
Alerts & Pickers
Advanced usage of UIAlertController and pickers based on it: Telegram, Contacts, Location, PhotoLibrary, Country, Phone Code, Currency, Date... -
SwiftEntryKit
SwiftEntryKit is a presentation library for iOS. It can be used to easily display overlays within your iOS apps. -
Macaw
Powerful and easy-to-use vector graphics Swift library with SVG support -
TextFieldEffects
Custom UITextFields effects inspired by Codrops, built using Swift -
AMScrollingNavbar
Scrollable UINavigationBar that follows the scrolling of a UIScrollView -
ViewDeck
An implementation of the sliding menu found in various iOS apps. -
Koloda
KolodaView is a class designed to simplify the implementation of Tinder like cards on iOS. -
SideMenu
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less. -
SWRevealViewController
A UIViewController subclass for presenting side view controllers inspired on the FaceBook and Wunderlist apps, done right ! -
Material Components
[In maintenance mode] Modular and customizable Material Design UI components for iOS -
expanding-collection
:octocat: ExpandingCollection is an animated material design UI card peek/pop controller. iOS library made by @Ramotion -
TSMessages
💌 Easy to use and customizable messages/notifications for iOS à la Tweetbot
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 TransitionTreasury or a related project?
README
TransitionTreasury is a viewController transition framework in Swift.
You can see https://transitiontreasury.com
Features
- [x] Push & Present & TabBar transition animation
- [x] Easy create transition & extension
- [x] Support completion callback
- [x] Support modal viewController data callback
- [x] Support Custom Transition
- [x] Support Update Status Bar Style
- [x] Support Push & Present & TabBar Gesture.
- [x] Complete Documentation
Migration Guides
Requirements
- iOS 8.0+
- Xcode 10.0+
Communication
- If you need help or found a bug, open an issue.
- If you have a new transition animation or want to contribute, submit a pull request. :]
Installation
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate TransitionTreasury into your Xcode project using CocoaPods, specify it in your Podfile
:
use_frameworks!
pod 'TransitionTreasury', '~> 7.0'
Then, run the following command:
$ pod install
In any file you'd like to use TransitionTreasury in, don't forget to import the framework with import TransitionTreasury.
For TransitionAnimation extensions, this project will include them as dependencies. You can do this via CocoaPods subspecs.
pod 'TransitionAnimation', '~> 7.0'
### Carthage
Carthage is a decentralized dependency manager for Cocoa application. To install the carthage tool, you can use Homebrew.
$ brew update
$ brew install carthage
To integrate TransitionTreasury into your Xcode project using Carthage, specify it in your Cartfile
:
github "DianQK/TransitionTreasury"
Then, run the following command to build the TransitionTreasury framework:
$ carthage update
At last, you need to set up your Xcode project manually to add the TransitionTreasury framework.
On your application targets’ “General” settings tab, in the “Linked Frameworks and Libraries” section, drag and drop each framework you want to use from the Carthage/Build folder on disk.
On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New Run Script Phase”. Create a Run Script with the following content:
/usr/local/bin/carthage copy-frameworks
and add the paths to the frameworks you want to use under “Input Files”:
$(SRCROOT)/Carthage/Build/iOS/TransitionTreasury.framework
$(SRCROOT)/Carthage/Build/iOS/TransitionAnimation.framework // If need
For more information about how to use Carthage, please see its project page.
Usage
You can check out Example or Demo .
Don't forgetpod install
for Example .
Make a Push
If we need to push FirstViewController
to SecondViewController
, SecondViewController
should conform NavgationTransitionable
, and add code var tr_pushTransition: TRNavgationTransitionDelegate?
, I need use this property to retain animation object. Of course, you can use this do more, but it is dangerous.
When you need to push, just call public func tr_pushViewController<T : UIViewController where T : NavgationTransitionable>(viewController: T, method: TransitionAnimationable, statusBarStyle: TransitionTreasury.TRStatusBarStyle = default, completion: (() -> Void)? = default)
, like Apple method. About method
parameter, see transitiontreasury.com.
Example:
/// FirstViewController.swift
class FirstViewController: UIViewController {
func push() {
let vc = SecondViewController()
navigationController?.tr_pushViewController(vc, method: TRPushTransitionMethod.fade, completion: {
print("Push finish")
})
}
}
/// SecondViewController.swift
class SecondViewController: UIViewController, NavgationTransitionable {
var tr_pushTransition: TRNavgationTransitionDelegate?
func pop() {
tr_popViewController()
}
}
When you need to pop, just call public func tr_popViewController(completion: (() -> Void)? = nil) -> UIViewController?
.
Make a Present
If we present MainViewController
to ModalViewController
:
MainViewController
should conformModalTransitionDelegate
, and addvar tr_presentTransition: TRViewControllerTransitionDelegate?
- Add
weak var modalDelegate: ModalViewControllerDelegate?
forModalViewController
.
Example:
/// MainViewController.swift
class MainViewController: UIViewController, ModalTransitionDelegate {
var tr_presentTransition: TRViewControllerTransitionDelegate?
func present() {
let vc = ModalViewController()
vc.modalDelegate = self // Don't forget to set modalDelegate
tr_presentViewController(vc, method: TRPresentTransitionMethod.Fade, completion: {
print("Present finished.")
})
}
}
/// ModalViewController.swift
class ModalViewController: UIViewController {
weak var modalDelegate: ModalViewControllerDelegate?
func dismiss() {
modalDelegate?.modalViewControllerDismiss(callbackData: nil)
}
}
if you need callbackData
, your MianViewController
should implement :
func modalViewControllerDismiss(interactive interactive: Bool, callbackData data:AnyObject?)
// or
func modalViewControllerDismiss(callbackData data:AnyObject?)
interactive
just for interactive dismiss, for more see Advanced Usage.
Note:
If you don't need callbackData, maybe you haven't implementedfunc modalViewControllerDismiss(callbackData data:AnyObject?)
. If you don't want to useModalTransitionDelegate
, you can useViewControllerTransitionable
which only for Animation. Warning:
You shouldn't usetr_dismissViewController()
in your ModalViewController. Please usedelegate
. I have implented this, just usemodalDelegate?.modalViewControllerDismiss(callbackData: ["data":"back"])
. For more, you can read Dismissing a Presented View Controller.
Advanced Usage
Create Your Transition Enum (Recommended!!!!)
Maybe like this:
enum DemoTransition {
case FadePush
case TwitterPresent
case SlideTabBar
}
extension DemoTransition: TransitionAnimationable {
func transitionAnimation() -> TRViewControllerAnimatedTransitioning {
switch self {
case .FadePush:
return FadeTransitionAnimation()
case .TwitterPresent :
return TwitterTransitionAnimation()
case .SlideTabBar :
return SlideTransitionAnimation()
}
}
}
Then you can use your transition, maybe like this:
tr_pushViewController(viewController: viewController, method: DemoTransition.FadePush)
tr_presentViewController(viewControllerToPresent: viewController, method: DemoTransition.TwitterPresent)
Well, you can create your own animation, see Custom Animation.
Custom Animation
Just conform to TRViewControllerAnimatedTransitioning
. If you need interactive functionality, conform to TransitionInteractiveable
.
About writing your own animation, you can read Animation-Guide, I would be happy if you would share your animation for this project.
Also, check out TransitionTreasury/TransitionAnimation
, there are some Animations there. You can write follow this.
Status Bar Style
If you want to update the status bar style, you should add the key View controller-based status bar appearance
in your info.plist, and set its value to false
.
Then, like in Basic Usage, just add param statusBarStyle
:
// Push & Pop
tr_pushViewController(viewController: UIViewController, method: TRPushTransitionMethod.fade, statusBarStyle: UIStatusBarStyle = .Default)
// Present & Dismiss
tr_presentViewController(viewControllerToPresent: UIViewController, method: TRPresentTransitionMethod.Fade, statusBarStyle: UIStatusBarStyle = .Default)
Interactive Transition Animation
See TransitionTreasuryDemo Scheme:
func interactiveTransition(sender: UIPanGestureRecognizer) {
switch sender.state {
case .Began :
guard sender.translationInView(view).y > 0 else {
break
}
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ModalViewController") as! ModalViewController
vc.modalDelegate = self
tr_presentViewController(vc, method: TRPresentTransitionMethod.Scanbot(present: sender, dismiss: vc.dismissGestureRecognizer), completion: {
print("Present finished")
})
default : break
}
}
Warning: Make sure you just call
tr_presentViewController(_:_:_:)
once.
TabBar Transition Animation
Just add this code:
tabBarController.tr_transitionDelegate = TRTabBarTransitionDelegate(method: TRTabBarTransitionDelegate.Slide)
Note: If you need
delegate
, please usetr_delegate
.
You can see Demo/TabBarDemo
.
License
TransitionTreasury is released under the MIT license. See LICENSE for details.
*Note that all licence references and agreements mentioned in the TransitionTreasury README section above
are relevant to that project's source code only.