这是带有顶部toolBar的控制器,支持圆形小红点、数字小红点、多种图文样式,与APPLE官方控件-UITabBarViewController一样的代理设计模式,简单易用。
作者:kizy
QQ:358033194
案例使用教程
- Manual import:(手动引用)
-
Drag All files in the
XZTabBarCtrl
folder to project
(将XZTabBarCtrl
文件夹及子文件拉到你的项目中) -
Import the main file:
#import "XZTabBar.h"
(引用头文件XZTabBar.h
)
-
Drag All files in the
UIViewController *ctrl1 = [[UIViewController alloc] init]; UIViewController *ctrl2 = [[OneViewCtrl alloc] init]; UIViewController *ctrl3 = [[RedViewCtrl alloc] init]; XZTabBarCtrl *tabBarCtrl = [[XZTabBarCtrl alloc] init]; //将子控制器加入childVCs,用法类似UITabBarViewController的viewControllers tabBarCtrl.childVCs = @[ctrl1, ctrl2, ctrl3];//为顶部ToolBar添加需要显示的标题
tabBarCtrl.toolBarTitles = @[@"第一个Item", @"第二个Item", @"第三个Item"]; //设置代理 tabBarCtrl.delegate = self; //为顶部ToolBar设置显示样式,更多样式设置请看属性 tabBarCtrl.itemType = ToolBarItemType_leftToRight; //ToolBarItemType_default(默认样式)、ToolBarItemType_leftToRight(图文左右排列)、ToolBarItemType_topToBottom(图文上下排列) tabBarCtrl.toolBarImages = @[@"job_push_icon_blue", @"job_push_icon_blue", @"job_push_icon_blue"];//设置图片数组 tabBarCtrl.xzToolBarColor = [UIColor whiteColor]; //设置背景色
-
Import the main file:
#import "XZTabBar.h"
in childViewController
(子控制器中引用头文件XZTabBar.h
) - 显示小红点:
self.toolBarItem.budgeView.hidden = NO;
- 显示6个未读数字:
self.toolBarItem.bageVal = @"6";
@interface XZTabBarCtrl : UIViewController
// 代理</
code> @property (nonatomic, weak) id delegate;
// @decription toolBarItem's title: 存放自定义tooleBar的标题数组 // @warning 该属性可为空,为空表示不创建tooleBar
@property (nonatomic, copy) NSArray *toolBarTitles;
// @decription toolBarItem's image: 存放自定义tooleBar的图片数组 // @warning 该属性可为空,如需赋值,count大小需与toolBarTitles一致
@property (nonatomic, copy) NSArray *toolBarImages;
// @decription toolBar's height: 设置toolBar的高度,默认高度为49.0f
@property (nonatomic, assign) CGFloat toolBarHeight;
// @decription 自定义的toolBar // @warning toolBar整个机制类似UITabBarController的tabBar:一个XZTabBarCtrl只有一个customeToolBar;每个子控制器拥有独立的ToolBarItem,可支持小红点、标题更改 etc, 子控制器获取该tooleBarItem需要引用文件"XZTabBar.h"
@property (nonatomic, weak) UIView *customToolBar;
@property (nonatomic, assign) ToolBarItemType itemType;
// @decription toolBarItem显示样式 // ToolBarItemType_default, //默认显示系统正常排列按钮 // ToolBarItemType_normalImgText, //左右图文按钮 // ToolBarItemType_unnormalImgText, //上下图文按钮
// @decription 控制toolBar的背景颜色,default is blackColor
@property (nonatomic, strong) UIColor *xzToolBarColor;
// @decription 控制toolItem的文字正常显示颜色,default is grayColor
@property (nonatomic, strong) UIColor *xzTitleColor;
// @decription 控制被选中toolItem的文字显示颜色,default is whiteColor
@property (nonatomic, strong) UIColor *xzTitleSelectedColor;
// @decription 存放子控制器的数组 // @warning 该属性不能为空,必须赋值
@property (nonatomic, copy) NSMutableArray<__kindof UIViewController *> *childVCs;
// @decription 当前显示的控制器的Index // @warning 该属性用法类似UITabBarController的selectedIndex属性
@property (nonatomic, assign) NSInteger selectedIndex;
@protocol XZTabBarCtrlDelegate
//点击时调用,返回即将显示控制器对应toolBarItem
- (void)xzTabBarCtrl:(XZTabBarCtrl *)tabbarCtrl selectedItem:(ToolBarItem *)toolBarItem;
//点击前调用,控制是否跳转
- (BOOL)xzTabBarCtrl:(XZTabBarCtrl *)tabbarCtrl shouldSelectViewController:(UIViewController *)viewController;
//点击时调用,返回即将显示控制器
- (void)xzTabBarCtrl:(XZTabBarCtrl *)tabbarCtrl didSelectViewController:(UIViewController *)viewController;
@end