Awesome Open Source
Awesome Open Source


beautiful TabBar with custom styles and animations


Here are some style of demos using TVGTabBarController.

default style With no tilte pointerStyle => Line
change attrs colors change attrs colors change attrs colors
with landscape mode




To integrate TVGTabBarController into your Xcode project using CocoaPods, specify it in your Podfile:

platform :ios, '13.0'

target 'YourProjectName' do
  pod 'TVGTabBarController'

And then remember to import TVGTabBarController module before using it.


You could directly copy and add the folder TVGTabBarController which contains 'TVGTabBarController.swift' file to your project.


You could use TVGTabBarController like you use UIViewController, create a ViewController and exteds it by TVGTabBarController programmatically. Additionally, clone this Demo project to find out how easy it is working.


import UIKit
import TVGTabBarController

class ViewController: TVGTabBarController {
    override func viewDidLoad() {
    fileprivate func initTVGTabBar() {
        var tabBarItem, tabBarItem2, tabBarItem3, tabBarItem4: TVGTabBarItem
        tabBarItem  = TVGTabBarItem(image: UIImage(named: "home")!, title: "Home")
        tabBarItem2 = TVGTabBarItem(image: UIImage(named: "like")!, title: "Like")
        tabBarItem3 = TVGTabBarItem(image: UIImage(named: "favorite")!, title: "Favorite")
        tabBarItem4 = TVGTabBarItem(image: UIImage(named: "profile")!, title: "Profile")
        let badge = TVGTabBarBadge(value:3, badgeColor: .red)
        tabBarItem.badge = badge
        let vc1 = storyboard!.instantiateViewController(identifier: "VC1ViewControlelr")
        let vc2 = storyboard!.instantiateViewController(identifier: "VC2ViewControlelr")
        let vc3 = storyboard!.instantiateViewController(identifier: "VC3ViewControlelr")
        let vc4 = storyboard!.instantiateViewController(identifier: "VC4ViewControlelr")
        self.delegate = self
        self.viewControllers = [vc1, vc2, vc3,vc4]
        self.tabBarItems = [tabBarItem,tabBarItem2,tabBarItem3,tabBarItem4]
        //self.tabsBadgeColor =
        //self.tabsSelectedTintColor = .orange
        //self.tabsDefaultTintColor = .gray
        //self.tabsTitleIsHidden = true
        //self.tabsPointerColor = .orange
        //self.animDurationOfVC = 0.15
        //self.tabbarSize = .normal
        //self.tabPointerStyle = .circle
        //self.tabsFont = UIFont(name: "Arial", size: 14)
        //self.selectedViewController = vc3

extension ViewController: TVGTabBarControllerDelegate {
    func tabBarController(_ tabBarController: TVGTabBarController, didSelect: UIViewController) {
        print("Delegate success!");

📄 License

TVGTabBarController is released under the MIT license. See LICENSE for details.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Swift (95,446
Ios (19,263
Animation (5,105
Navigation (1,574
Swift5 (911
Menu (833
Tabs (601
Menubar (332
Ios13 (178
Tabbar (163
Navigationbar (155
Related Projects