A tabbar with a number of preset animations written in pure SwiftUI
MIT License
Read Article »
Int
to store the current selectionimport AnimatedTabBar
AnimatedTabBar(selectedIndex: $selectedIndex) {
TabButton1()
TabButton2()
TabButton3()
}
For the second one the views must have the same type, or be manually converted to AnyView
AnimatedTabBar(selectedIndex: $selectedIndex, views: [TabButton1(), TabButton2(), TabButton3()])
selectedIndex
- binding to the current index
views
- buttons to display in the tabbar
use the customize
closure in the popup modifier:
barColor
- Color of the tabbar itself
selectedColor
- Selected tab color (use template rendering for this color to be applied properly)
unselectedColor
- Unselected tab color
ballColor
- Ball indicator color
verticalPadding
- Space from the buttons to the bar's top and bottom edges
cornerRadius
- The corner radius applied to the tabbar background color
ballAnimation
- Animation curve to apply to ball motion, default is .easeOut(duration: 0.6)
indentAnimation
- Animation curve for growing/shrinking of the indent in the tabbar
buttonsAnimation
- Animation curve for applying color to tab buttons
didSelectIndex
- Closure which gets called on every tab tap
ballTrajectory
- Options for ball indicator animation paths:
parabolic
- Jump to the selected button following a parabolic arcteleport
- Disappear and quickly re-appear above selected tabstraight
- Slide to the selected tabBy default tabs only have a simple color animation, but you can customize that. This library has two built-in button types you can use out-of-the-box: DropletButton
and WiggleButton
, and a super custom ColorButton
type in the Example project. Please feel free to use them in your projects or build your own buttons on top of them.
To try the AnimatedTabBar examples:
https://github.com/exyte/AnimatedTabBar.git
cd <AnimatedTabBarRepo>/Example/
pod install
to install all dependenciesopen AnimatedTabBarExample.xcworkspace/
to open the project in Xcodedependencies: [
.package(url: "https://github.com/exyte/AnimatedTabBar.git")
]
To install AnimatedTabBar
, simply add the following line to your Podfile:
pod 'ExyteAnimatedTabBar'
To integrate AnimatedTabBar
into your Xcode project using Carthage, specify it in your Cartfile
github "Exyte/AnimatedTabBar"
Many thanks to Yeasin Arafat for their beautiful original work that we recreated with SwiftUI.
PopupView - Toasts and popups library Grid - The most powerful Grid container ScalingHeaderScrollView - A scroll view with a sticky header which shrinks as you scroll MediaPicker - Customizable media picker Chat - Chat UI framework with fully customizable message cells, input view, and a built-in media picker OpenAI Wrapper lib for OpenAI REST API AnimatedGradient - Animated linear gradient ConcentricOnboarding - Animated onboarding flow FloatingButton - Floating button menu ActivityIndicatorView - A number of animated loading indicators ProgressIndicatorView - A number of animated progress indicators FlagAndCountryCode - Phone codes and flags for every country SVGView - SVG parser LiquidSwipe - Liquid navigation animation