azt

AZTabBarController

Custom TabBar Controller for iOS

Showing:

Popularity

Downloads/wk

0

GitHub Stars

37

Maintenance

Last Commit

4yrs ago

Contributors

3

Package

Dependencies

0

License

MIT

Categories

Readme

AZTabBarController

CocoaPods Compatible Carthage Compatible Platform Twitter 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

Installation

  • 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.

To-do

  • 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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100