SwipeableTabBarController alternatives and similar libraries
Based on the "Tab Bar" category.
Alternatively, view SwipeableTabBarController alternatives based on common mentions on social networks and blogs.
-
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 -
XLPagerTabStrip
Android PagerTabStrip for iOS. -
FoldingTabBar.iOS
Folding Tab Bar and Tab Bar Controller -
Tabman
โข๏ธ A powerful paging view controller with interactive indicator bars -
Segmentio
Animated top/bottom segmented control written in Swift. -
adaptive-tab-bar
:octocat: AdaptiveController is a 'Progressive Reduction' Swift UI module for adding custom states to Native or Custom iOS UI elements. Swift UI component by @Ramotion -
ColorMatchTabs
This is a Review posting app that let user find interesting places near them -
TabPageViewController
Paging view controller and scroll tab view -
SwipeViewController
SwipeViewController is a Swift modification of RKSwipeBetweenViewControllers - navigate between pages / ViewControllers -
TabDrawer
Customizable TabBar UI element that allows you to run a block of code upon TabBarItem selection, written in Swift -
AZTabBarController
A custom tab bar controller for iOS written in Swift 4.2 -
ExpandedTabBar
ExpandedTabBar is a very creative designed solution for "more" items in UITabBarController. It's greate experience to have more comfortable and intuitive UI. -
AnimatedTabBar
A tabbar with a number of preset animations written in pure SwiftUI -
WormTabStrip
๐ WormTabStrip ViewPager for iOS written in Swift, which gives continuous feedback to the user when scrolling -
CardTabBar
This library is for adding animation to iOS tabbar items, which is inherited from UITabBarController. -
GGTabBar
Another UITabBar & UITabBarController (iOS Tab Bar) replacement, but uses Auto Layout for arranging it's views hierarchy. -
BEKCurveTabbar
Full Customizable Tabbar with IBInspectables -
ESTabBarController
A custom tab bar controller for iOS. -
KYWheelTabController
KYWheelTabController is a subclass of UITabBarController.It displays the circular menu instead of UITabBar. -
SSCustomTabMenu
Customisable iOS bottom menu works like Tabbar
InfluxDB - Power Real-Time Data Analytics at Scale
* 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 SwipeableTabBarController or a related project?
README
[SwipeableTabBarController](./Resources/GIFs/SwipeableTabBarController_logo.gif)
๐ Features
- [x] Zero setup
- [x] Different animations
- [x] Enable/Disable interactions easily
- [x] Fluid gestures
๐ฒ Installation
Using CocoaPods
Edit your Podfile
and specify the dependency:
pod 'SwipeableTabBarController'
Using Carthage
Edit your Cartfile
and specify the dependency:
github "marcosgriselli/SwipeableTabBarController"
Manual
Drop the classes inside of SwipeableTabBarController/Classes into your project.
๐ฉโ๐ป How to use
Setup
If you don't need subclassing UITabBarController
just set the UITabBarController
on the Storyboard to be of type SwipeableTabBarController
.
Otherwise, make a subclass of SwipeableTabBarController
.
import SwipeableTabBarController
class TabBarController: SwipeableTabBarController {
// Do all your subclassing as a regular UITabBarController.
}
Animations
SwipeableTabBarController
supports 3 different types of animations out of the box. Setting the desired animation is easy. On your SwipeableTabBarController
subclass just do:
swipeAnimatedTransitioning?.animationType = SwipeAnimationType.sideBySide
If you are supporting just one type of animation call it on viewDidLoad()
otherwise call it as you need to change the desired animation.
Side by Side (default)
The default animation is SwipeAnimationType.sideBySide
where the newly selected tab will move in at the same speed the previous one moves out.
Overlap
SwipeAnimationType.overlap
the newly selected tab will move in to take the central place on top of the previous one which will hold it's position.
Push
SwipeAnimationType.push
follows iOS default push animation where the top view moves away while the bottom one slightly moves behind. In this case, the top view will be the previously selected tab view.
<!--
Restricted Swipe
You can choose to restrict your swiping to perfect horizontal swipe or support diagonal movement as well. I recommend enabling horizontal swipe if you are not using any kind of scrollViews on your controllers.
Default value is false
setDiagonalSwipe(enabled: true)
--->
Enable Cycling
SwipeableTabBarController
supports cycling between the first and last tab like a carousel. Simply set isCyclingEnabled
to true
.
Default value is false
isCyclingEnabled = true
Minimum/Maximum number of touches
You can set both the minimum and the maximum number of touches needed to handle the swipe gesture. Simply set minimumNumberOfTouches
or maximumNumberOfTouches
property.
Default value is 1
minimumNumberOfTouches = 2
Default value is Int.max
maximumNumberOfTouches = 2
Disable Interaction
Support for disabling/enabling the interactor, this can be used on a controller that uses horizontal scrollView or a Map (in the example).
Default value is true
isSwipeEnabled = false
โค๏ธ Contributing
This is an open source project, so feel free to contribute. How?
- Open an issue.
- Send feedback via twitter.
- Propose your own fixes, suggestions and open a pull request with the changes.
Contributors
๐จโ๐ป Author
Marcos Griselli | @marcosgriselli
๐ก License
MIT License
Copyright (c) 2018 Marcos Griselli
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*Note that all licence references and agreements mentioned in the SwipeableTabBarController README section above
are relevant to that project's source code only.