All Projects → ratulSharker → RSCustomTabbarController

ratulSharker / RSCustomTabbarController

Licence: MIT License
This is super flexible Custom tab bar controller implementation. You have the complete opportunity to customise according to your necessity ( ## Also support swift ## )

Programming Languages

objective c
16641 projects - #2 most used programming language
swift
15916 projects

Projects that are alternatives of or similar to RSCustomTabbarController

Cyltabbarcontroller
[EN]It is an iOS UI module library for adding animation to iOS tabbar items and icons with Lottie, and adding a bigger center UITabBar Item. [CN]【中国特色 TabBar】一行代码实现 Lottie 动画TabBar,支持中间带+号的TabBar样式,自带红点角标,支持动态刷新。【iOS13 & Dark Mode & iPhone XS MAX supported】
Stars: ✭ 6,605 (+18771.43%)
Mutual labels:  storyboard, tabbarcontroller
SPNavigationDrawerwithTABbar
This is a Custom Navigation controller along with tab bar controller and it provides a navigation slider to easy to access other controllers in iOS and it's made in Swift 3.
Stars: ✭ 88 (+151.43%)
Mutual labels:  tabbarcontroller
MightyTabBar
How tab bars should work.
Stars: ✭ 72 (+105.71%)
Mutual labels:  tabbarcontroller
NeumorphismKit
Neumorphism framework for UIKit.
Stars: ✭ 39 (+11.43%)
Mutual labels:  storyboard
OneKeyChangeXIBColor
快速修改XIB或者Storyboard的控件颜色
Stars: ✭ 25 (-28.57%)
Mutual labels:  storyboard
IHTypeWriterLabel
No description or website provided.
Stars: ✭ 24 (-31.43%)
Mutual labels:  storyboard
Triangle
A (really) simple Swift 4 UIView class with a triangle and a diagonal line rendered and customizable in the storyboard (color, line width, direction)
Stars: ✭ 25 (-28.57%)
Mutual labels:  storyboard
NeumorphismTab
Custom TabBarController with Neumorphism.
Stars: ✭ 78 (+122.86%)
Mutual labels:  storyboard
SETabView
SETabView is a TabBar with simple yet beautiful animations that makes your apps look cool!
Stars: ✭ 53 (+51.43%)
Mutual labels:  custom-tabbar-controller
ios ui recipe showcase
iOSアプリ開発 - UI実装であると嬉しいレシピブック掲載サンプル
Stars: ✭ 54 (+54.29%)
Mutual labels:  storyboard
react-native-segment-controller
A react-native segment controller(Tab) for both ios and android.
Stars: ✭ 18 (-48.57%)
Mutual labels:  tabbarcontroller
NSVLocalizationKit
Localize directly from Storyboard or Xib, it will automatically update all texts after in app language changing, without any line of code
Stars: ✭ 21 (-40%)
Mutual labels:  storyboard
Translatio
Super lightweight library that helps you to localize strings, even directly in storyboards!
Stars: ✭ 19 (-45.71%)
Mutual labels:  storyboard
IBProperty
XIB、Storyboard Helper
Stars: ✭ 31 (-11.43%)
Mutual labels:  storyboard
font-wonder-unit
Free and open source sans-serif font, brought to you by Wonder Unit.
Stars: ✭ 57 (+62.86%)
Mutual labels:  storyboard
obsidian-journey-plugin
Discover the story between your notes in Obsidian
Stars: ✭ 93 (+165.71%)
Mutual labels:  storyboard
xcode-canvas-color
macOS tweak that changes the background color of Xcode's storyboard editor
Stars: ✭ 17 (-51.43%)
Mutual labels:  storyboard
KDRearrangeableCollectionViewFlowLayout
A Drag and Rearrange UICollectionView through its layout
Stars: ✭ 73 (+108.57%)
Mutual labels:  storyboard
SwiftyAcknowledgements
Integrate acknowledgements into your iOS App
Stars: ✭ 40 (+14.29%)
Mutual labels:  storyboard
Restaurant-Viewing-App
Build A Restaurant Viewing App in Swift 4.2
Stars: ✭ 43 (+22.86%)
Mutual labels:  storyboard

RSCustomTabbarController

This is super flexible Custom tab bar controller implementation. You have the complete opportunity to customise according to your necessity.

Want to check on your own ?

Experience a live demonstration

Simple Demonstration

You can design whatever tabbar controller comes in your mind. Following is some simple demonstration. Many more are yet to come. If you have any unique idea, you would like to implement it for you feel free to contact [email protected]

Simple tutorial

###Step1: Copy the RSCustomTabbarController in your project.

###Step2: Create a new class extending from the base class RSCustomTabbarController. Let the new class name is Demo1TabbarController. Demo1TabbarController.h looks like following.

#import <UIKit/UIKit.h>
#import "RSCustomTabbarController.h"

@interface Demo1TabbarController : RSCustomTabbarController 

@end

Now implement the RSCustomTabbarImplementationDelegate by adding following properties & methods in Demo1TabbarController

@property UIView *viewControllerContainer;

@property NSArray<NSLayoutConstraint*> *tabbarContainerHeight;
@property NSArray<NSLayoutConstraint*> *tabbarWidgetHolderTop;

-(CGFloat)heightForTabbarController:(RSCustomTabbarController*)tabbarController;
-(void)newSelectedTabbarIndex:(NSUInteger)newSelectedIndex whereOldIndexWas:(NSUInteger)oldSelectedIndex;

Before getting into nitty gitty details, first grab some key concept about this protocol. This RSCustomTabbarImplentationDelegate will ask for these 3 properties & 2 method. You are about to apply your own graphical design, but how should RSCustomTabbarController would know about which is your view controller container and what will act as an tabbar container. Thats why this protocol is designed to communicate between your provided presentation and internal tabbar like maintanance.

now the Demo1TabbarController.h is looks like

#import <UIKit/UIKit.h>
#import "RSCustomTabbarController.h"

@interface Demo1TabbarController : RSCustomTabbarController <RSCustomTabbarImplementationDelegate>

#pragma mark implementation properties
@property IBOutlet UIView *viewControllerContainer;
@property IBOutletCollection (NSLayoutConstraint) NSArray *tabbarContainerHeight;
@property IBOutletCollection (NSLayoutConstraint) NSArray *tabbarWidgetHolderTop;

@end

and the Demo1TabbarController.m will look like

#import "Demo1TabbarController.h"

@interface Demo1TabbarController ()

@end

@implementation Demo1TabbarController

#pragma mark life cycle
-(void)viewDidLoad
{
    [super viewDidLoad];
}

#pragma mark CustomTabbarImplementationDelegate
-(CGFloat)heightForTabbarController:(RSCustomTabbarController*)tabbarController
{
    //todo -- implementation
}
-(void)newSelectedTabbarIndex:(NSUInteger)newSelectedIndex whereOldIndexWas:(NSUInteger)oldSelectedIndex
{
    //todo -- implementation
}
@end

For now we are done with class. Now we need to add a inteface builder file (storyboard/nib) file for designing the tabbar controller. Following is the hierarchy we will be following to create the Demo1TabbarContorller

      UIVIewController
      |
      |--> self.view
          |
          |--> viewController container
          |--> tabbar container
              |
              |--> bar button container
                  |
                  |--> buttons

Storyboard designing can be done as followos

Checkout at youtube

After done with your designing, now add some IBOutlets, IBactions and variables in the Demo1TabbarController.m. It should look like following

#import "Demo1TabbarController.h"

@interface Demo1TabbarController ()
{
    NSArray<UIButton*> *buttonArr;
}
@property (strong, nonatomic) IBOutlet UIButton *mViewBtn0;
@property (strong, nonatomic) IBOutlet UIButton *mViewBtn1;
@property (strong, nonatomic) IBOutlet UIButton *mViewBtn2;
@property (strong, nonatomic) IBOutlet UIButton *mViewBtn3;
@property (strong, nonatomic) IBOutlet UIButton *mViewBtn4;

@end

@implementation Demo1TabbarController

#pragma mark life cycle
-(void)viewDidLoad
{
    _mViewBtn0.tag = 0;
    _mViewBtn1.tag = 1;
    _mViewBtn2.tag = 2;
    _mViewBtn3.tag = 3;
    _mViewBtn4.tag = 4;
    
    
    buttonArr = @[_mViewBtn0, _mViewBtn1, _mViewBtn2, _mViewBtn3, _mViewBtn4];
    
    [super viewDidLoad];
}


#pragma mark CustomTabbarImplementationDelegate
-(CGFloat)heightForTabbarController:(RSCustomTabbarController*)tabbarController
{
    return 95;
}
-(void)newSelectedTabbarIndex:(NSUInteger)newSelectedIndex whereOldIndexWas:(NSUInteger)oldSelectedIndex
{
    buttonArr[oldSelectedIndex].selected = NO;
    buttonArr[newSelectedIndex].selected = YES;
}

#pragma mark IBActions
-(IBAction)tabbarButtonPressed:(UIButton*)sender
{
    NSLog(@"tabbar button pressed");
    [super setSelectedViewCotnrollerAtIndex:sender.tag];
}

@end

Now time to connect the IBAction and IBOutlet of the implementation so that the storyboard widgets can map into it. These are shown in the next video.

Checkout at youtube

Our custom tabbar is ready to rock and roll. Instantiate it from Storyboard and use it just like regular UITabbarController.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].