Latest 1.0.1
License MIT
Platforms ios 9.0

CocoaPods Compatible
Carthage Compatible
GitHub license

AZTabBarController helps to extend capabilities of default UITabBarController and create custom UITabBar items with custom appearance (with animations, layout and so on). Right now works only with storyboard setup (so your UITabBarController should be on storybaord).

Visual Example

Inside this repository you can try iOS Example target with example of AZTabBarController implementation and custom items (FashionTabBarItem.swift and MiddleTabBarItem):

Animation example


  • Add the following to your Podfile and run pod install
    pod 'AZTabBarController'
  • or add the following to your Cartfile and run carthage update
    github "azimin/AZTabBarController"
  • or clone as a git submodule,

  • or just copy Source/AZTabBarController.swift and Source/UIView+Extensions.swift into your project.

AZTabBarController setup in storyboard

At first you should change UITabBarController to AZTabBarController on storyboard.

First setup step

Then change UITabBar to AZTabBar on the same storyboard.

Second setup step

Then change all UITabBarItem to AZTabBarItem on this storyboard.

Third setup step

Also don’t forget to implement code inside your view controllers for tab bar. This example you can find in Demo iOS Example project:

override func az_tabBarItemContentView() -> AZTabBarItemView {
  let tab = FashionTabBarItem.loadViewFromNib()

  tab.imageView.image = UIImage(named: "img_profile")
  tab.bottomLabel.text = "Profile"

  return tab

Possible assertions

  • All tab bar items must be AZTabBarItem class means one of your root view contllers on tab bar has UITabBarItem class instead of AZTabBarItem
  • tabBar class must be AZTabBar class means you tabBar on UITabBarViewController is UITabBar, but should be AZTabBar

Dynamic height

  • You can setup default height on storybaord as @IBInspectable AZTabBarController property
  • If you want to change height of tab bar, you can call (on any chird view controllers):
    self.az_tabBarController?.preferedHeight = 125

    This would change Bottom Layout Guide

  • If you want to change height of specific items, you should use heightValue of your AZTabBarItemView, so it would be:

    override func az_tabBarItemContentView() -> AZTabBarItemView {
    let tab = MiddleTabBarItem.loadViewFromNib()
    tab.heightValue = 50
    return tab

    But pay attention that Bottom Layout Guide would use old value.


  • Support iOS 8+ (moved from anchors to cosntraints)
  • Support creation from code (right now only storyboard)
  • Support AZTabBarItemView without xib
  • Add some template AZTabBarItemView subsclasses
  • Improve example

Latest podspec

    "name": "AZTabBarController",
    "version": "1.0.1",
    "summary": "Framework that helps you to work with custom tab bar controller.",
    "description": "With this framework can easily work with custom views of default tab bar controller.",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Alexander Zimin": "[email protected]"
    "platforms": {
        "ios": "9.0"
    "source": {
        "git": "",
        "tag": "1.0.1"
    "source_files": "Source/*.swift",
    "pushed_with_swift_version": "3.0"

Pin It on Pinterest

Share This