DSBCMTabBarViewController.h
3.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//
// DSBCMTabBarViewController.h
// com.cnlive.pro.CNLiveNetAdd
//
// Created by zhaolin on 2019/9/16.
// Copyright © 2019 cnlive. All rights reserved.
//
#import <DSBaseControlsModule/DSBCMBaseViewController.h>
#import "DSBCMTabBar.h"
@class DSBCMTabBarViewController;
@protocol DSBCMTabBarViewControllerDelegate <NSObject>
@optional
/// 切换index代理 实现了这个代理后 切换index必须用调用tabBar.displayIndex=switchIndex才能切换显示界面
/// @param tabBar DSBCMTabBarViewController
/// @param switchIndex 切换后index
/// @param fromIndex 切换前index
-(void)tabBar:(nonnull DSBCMTabBarViewController*)tabBar switchIndex:(NSUInteger)switchIndex fromIndex:(NSUInteger)fromIndex;
@end
NS_ASSUME_NONNULL_BEGIN
@interface DSBCMTabBarViewController : DSBCMBaseViewController
#pragma mark - 代理
@property (nonatomic,weak) id<DSBCMTabBarViewControllerDelegate> delegate;
#pragma mark - 属性
/// 默认颜色
@property (nonatomic,strong) UIColor * normalColor;
/// 选中颜色
@property (nonatomic,strong) UIColor * selectColor;
/// 所有的子控制器
@property (nonatomic,strong,readonly) NSMutableArray<UIViewController*> * viewControllers;
/// 当前显示的索引
@property (nonatomic,assign) NSUInteger displayIndex;
/// 当前显示的子控制器
@property (nonatomic,weak,readonly) UIViewController * displayViewController;
#pragma mark - UI
/**
DSTabBar
*/
@property (nonatomic,strong) DSBCMTabBar * tabBar;
#pragma mark - 消息数
/// 消息默认大小 默认15,15
@property (nonatomic,assign) CGSize messageSize;
/// 消息字号 默认10
@property (nonatomic,strong) UIFont * messageFont;
/// 消息背景颜色 默认[UIColor redColor]
@property (nonatomic,strong) UIColor * messageBgColor;
/// 消息字体颜色 默认[UIColor whiteColor]
@property (nonatomic,strong) UIColor * messageTitleColor;
/// 消息字左右与背景间距 默认4
@property (nonatomic,assign) CGFloat messageTitleLRInset;
/// 消息x/y偏移量 默认-4,4
@property (nonatomic,assign) CGPoint messagePositionOffset;
/// 设置消息数
/// @param messageCount 消息数
/// @param index 对应索引
-(void)settingMessageCount:(NSUInteger)messageCount index:(NSUInteger)index;
#pragma mark - 添加/删除/修改子控制器
/**
添加子控制器
@param childController 子控制器 标题就是导航标题
@param normalImage 普通样式图片
@param selectImage 选中样式图片
@return 添加结果 YES成功 NO失败
*/
-(BOOL)addChildViewController:(nonnull UIViewController *)childController noralImage:(nullable UIImage*)normalImage selectImage:(nullable UIImage*)selectImage;
/// 插入子控制器
/// @param childController 子控制器 标题就是导航标题
/// @param normalImage 普通样式图片
/// @param selectImage 选中样式图片
/// @param index 插入index
/// @return 添加结果 YES成功 NO失败
-(BOOL)insertChildViewController:(nonnull UIViewController *)childController noralImage:(nullable UIImage*)normalImage selectImage:(nullable UIImage*)selectImage index:(NSUInteger)index;
/**
删除子控制器
@param childController 子控制器
@return 删除结果 YES成功 NO失败
*/
-(BOOL)removeChildViewController:(nonnull UIViewController *)childController;
/**
删除子控制器(用索引)
@param index 子控制器索引
@return 删除结果 YES成功 NO失败
*/
-(BOOL)removeChildViewControllerAtIndex:(NSUInteger)index;
/// 修改子控制器
/// @param childController 子控制器 标题就是导航标题
/// @param normalImage 普通样式图片
/// @param selectImage 选中样式图片
/// @param index 修改index
/// @return 修改结果 YES成功 NO失败
-(BOOL)changeChildViewController:(nonnull UIViewController *)childController noralImage:(nullable UIImage*)normalImage selectImage:(nullable UIImage*)selectImage index:(NSUInteger)index;
@end
NS_ASSUME_NONNULL_END