For the second one the views must have the same type, or be manually converted to `AnyView`
```swift
AnimatedTabBar(selectedIndex: $selectedIndex, views: [TabButton1(), TabButton2(), TabButton3()])
Required parameters
selectedIndex - binding to the current index views - buttons to display in the tabbar
Available customizations - modifiers
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 arc
teleport - Disappear and quickly re-appear above selected tab
straight - Slide to the selected tab
Built-in animatable tab buttons
By 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.
Examples
To try the AnimatedTabBar examples:
Clone the repo https://github.com/exyte/AnimatedTabBar.git
Open terminal and run cd <AnimatedTabBarRepo>/Example/
Run pod install to install all dependencies
Run open AnimatedTabBarExample.xcworkspace/ to open the project in Xcode
To integrate AnimatedTabBar into your Xcode project using Carthage, specify it in your Cartfile
github "Exyte/AnimatedTabBar"
Requirements
iOS 16+
Xcode 14+
Acknowledgements
Many thanks to Yeasin Arafat for their beautiful original work that we recreated with SwiftUI.
Our other open source SwiftUI libraries
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 ConcentricOnboarding - Animated onboarding flow FloatingButton - Floating button menu ActivityIndicatorView - A number of animated loading indicators ProgressIndicatorView - A number of animated progress indicators SVGView - SVG parser LiquidSwipe - Liquid navigation animation
Animated Tab Bar
AnimatedTabBar is a tabbar with a number of preset animations written in pure SwiftUI
We are a development agency building phenomenal apps.
Usage
Int
to store the current selection```swift import AnimatedTabBar
AnimatedTabBar(selectedIndex: $selectedIndex) { TabButton1() TabButton2() TabButton3() }
Required parameters
selectedIndex
- binding to the current indexviews
- buttons to display in the tabbarAvailable customizations - modifiers
use the
customize
closure in the popup modifier:barColor
- Color of the tabbar itselfselectedColor
- Selected tab color (use template rendering for this color to be applied properly)unselectedColor
- Unselected tab colorballColor
- Ball indicator colorverticalPadding
- Space from the buttons to the bar’s top and bottom edgescornerRadius
- The corner radius applied to the tabbar background colorballAnimation
- Animation curve to apply to ball motion, default is .easeOut(duration: 0.6)indentAnimation
- Animation curve for growing/shrinking of the indent in the tabbarbuttonsAnimation
- Animation curve for applying color to tab buttonsdidSelectIndex
- Closure which gets called on every tab tapballTrajectory
- 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 tabBuilt-in animatable tab buttons
By 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
andWiggleButton
, and a super customColorButton
type in the Example project. Please feel free to use them in your projects or build your own buttons on top of them.Examples
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 XcodeInstallation
Swift Package Manager
CocoaPods
To install
AnimatedTabBar
, simply add the following line to your Podfile:Carthage
To integrate
AnimatedTabBar
into your Xcode project using Carthage, specify it in yourCartfile
Requirements
Acknowledgements
Many thanks to Yeasin Arafat for their beautiful original work that we recreated with SwiftUI.
Our other open source SwiftUI libraries
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
ConcentricOnboarding - Animated onboarding flow
FloatingButton - Floating button menu
ActivityIndicatorView - A number of animated loading indicators
ProgressIndicatorView - A number of animated progress indicators
SVGView - SVG parser
LiquidSwipe - Liquid navigation animation