Skip to content
Light way to add Fancy bottom bar ๐Ÿ“ฒ
Swift Ruby
Branch: master
Clone or download
Latest commit bc1628c Jan 24, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Update main.yml Jan 4, 2020
Carthage/Build support carthage Jan 4, 2020
Example new version Jan 24, 2020
SOTabBar fix safe area view Jan 24, 2020
Screenshots change Jan 9, 2020
.gitignore create .gitignore Jan 12, 2020
.travis.yml Update .travis.yml Jan 4, 2020
LICENSE add files Jan 3, 2020 Update Jan 11, 2020
SOTabBar.podspec new version Jan 24, 2020
_Pods.xcodeproj add files Jan 3, 2020


CocoaPods Platforms

๐Ÿ“‹ Requirements

SOTabBar requires iOS 9.3 or above, and is compatibile with Swift 4/5.

๐Ÿ“ฒ Installation


SOTabBar is available through CocoaPods:

pod 'SOTabBar'


SOTabBar is also available through Carthage:

github "Ahmadalsofi/SOTabBar"

๐Ÿš€ Usage

The Basics

  1. Set up your view controller with the an array of view controllers that you want to appear.
  2. Make your main View Controller subclass from SOTabBarViewController.
  3. return the array of your ViewControllers:
import UIKit
import SOTabBar
class MainViewController: SOTabBarViewController {

    override func viewDidLoad() {
        let firstVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "First_ID")
        let secondVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Second_ID")
        firstVC.tabBarItem = UITabBarItem(title: "Home", image: UIImage(named: "firstImage"), selectedImage: UIImage(named: "firstSelectedImage"))
        secondVC.tabBarItem = UITabBarItem(title: "Chat", image: UIImage(named: "secondImage"), selectedImage: UIImage(named: "secondSelectedImage"))
        viewControllers = [firstVC, secondVC]
  1. you can trigger your tab bar action by override the following function in your MainViewController
 override func soTabBar(_ tabBar: SOTabBarView, didSelectTabAt index: Int) {
      print("did Tapped On \(index)")

๐ŸŽจ Customization

You should set your customization before return the array of the viewcontrollers

class MainViewController: SOTabBarViewController {

    override func loadView() {
	    // SOTabBarSetting.propertyToCustomize = value


    SOTabBarSetting.tabBarHeight = 100.0


    SOTabBarSetting.tabBarTintColor =


    SOTabBarSetting.tabBarBackground = UIColor.purple


    SOTabBarSetting.tabBarCircleSize = CGSize(width: 50.0, height: 50.0)
  	 // or 
    SOTabBarSetting.tabBarCircleSize = CGSize(width: 80.0, height: 80.0)


    SOTabBarSetting.tabBarSizeImage = CGSize(width: 40.0, height: 40.0)


    SOTabBarSetting.tabBarShadowColor =


    SOTabBarSetting.tabBarSizeSelectedImage = CGSize(width: 40.0, height: 40.0)


    SOTabBarSetting.tabBarAnimationDurationTime = 2

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Author

โค๏ธ Contributing

Bug reports and pull requests are welcome on GitHub

๐Ÿ‘ฎ๐Ÿปโ€โ™‚๏ธ License

The library is available as open source under the terms of the MIT License.

You canโ€™t perform that action at this time.