1.支持的樣式
目前支持三種樣式:
typedef NS_ENUM(NSUInteger, MMTabBarViewGradientType) {
MMTabBarViewGradientTypeNormal = 0, //no underline and no mask
MMTabBarViewGradientTypeUnderline = 1, //only underline
MMTabBarViewGradientTypeMasking= 2, //only mask
};
默認(rèn)樣式為MMTabBarViewGradientTypeNormal
模蜡。也就是下 圖1 中的樣式砰左。
2.初始化方式
- 拖入
MMGroup
文件- 如demo中的
FirstViewController
繼承于MMTabBarViewController
- 簽訂
MMTabBarViewDataSource,MMTabBarViewDelegate
兩個協(xié)議迫皱。你可以參考UITableViewDataSource
,UITableViewDelegate
。MMTabBarViewDataSource
是必須實現(xiàn)的,因為它提供驅(qū)動視圖的數(shù)據(jù)娄猫。而MMTabBarViewDelegate
協(xié)議是可選的贱除,它提供了對視圖布局的自定義方式。參考第三部分的擴(kuò)展方式媳溺。
- (void)viewDidLoad {
[super viewDidLoad];
[self initMehod];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)initMehod{
self.dataSource = self;
self.delegate = self;
//指定樣式
self.gradientType = MMTabBarViewGradientTypeUnderline;
[self reload];
}
#pragma mark - MMTabBarViewDataSource
- (NSArray *)infomationsForViewController:(MMTabBarViewController *)tabBarViewController{
return [self.dataArr copy];
}
- (NSUInteger )numberOfItemsInViewController:(MMTabBarViewController *)tabBarViewController {
return self.dataArr.count;
}
- (MMTabBarModel *)infomationInViewController:(MMTabBarViewController *)tabBarViewController infoForItemAtIndex:(NSUInteger)index {
return self.dataArr[index];
}
#pragma mark - get
- (NSMutableArray *)dataArr {
if (!_dataArr) {
_dataArr = [NSMutableArray array];
NSArray *data = @[@[@"OneVC",@"洛杉磯湖人"],@[@"SecondVC",@"凱爾特人"],@[@"ThirdVC",@"雷霆"],@[@"FourthVC",@"尼克斯"],@[@"FivethVC",@"圣安東尼奧馬刺"],@[@"UIViewController",@"明尼蘇達(dá)森林狼"],@[@"UIViewController",@"休斯頓火箭"],@[@"UIViewController",@"印第安納步行者"],@[@"UIViewController",@"密爾沃基雄鹿"],@[@"UIViewController",@"小牛"],];
for (int i = 0; i < data.count; i++) {
[_dataArr addObject:[MMTabBarModel modelWithControllerClassName:[data[i] firstObject] controllerTitle:[data[i] lastObject]]];
}
}
return _dataArr;
}
3.通過可選的協(xié)議自定義自己想要的界面月幌。
@protocol MMTabBarViewDelegate <NSObject>
@optional
//=====================================TabBar=====================================
//顯示當(dāng)前titleScrollView背景的顏色 defalut is #485CD5
- (UIColor *)tabBarViewControllerShowTitleScrollViewBackgroudColor:(MMTabBarViewController *)tabBarViewController;
//顯示當(dāng)前titleScrollView的高度 defalut is 40.0f
- (CGFloat)tabBarViewControllerShowTitleScrollViewHeight:(MMTabBarViewController *)tabBarViewController;
//=====================================Titles=====================================
//顯示當(dāng)前title沒有選中標(biāo)題的顏色 defalut is blackColor
- (UIColor *)tabBarViewControllerShowTitleUnSelectedColor:(MMTabBarViewController *)tabBarViewController;
//顯示當(dāng)前title選中標(biāo)題的顏色 defalut is whiteColor
- (UIColor *)tabBarViewControllerShowTitleSelectedColor:(MMTabBarViewController *)tabBarViewController;
//設(shè)置title到左右兩邊緣的距離 defalut is 10.0f;
- (CGFloat)tabBarViewControllerShowTitleMargin:(MMTabBarViewController *)tabBarViewController;
//=====================================Underline=====================================
//顯示當(dāng)前下劃線背景顏色顏色 defalut is whiteColor
- (UIColor *)tabBarViewControllerShowUnderlineBackgroundColor:(MMTabBarViewController *)tabBarViewController;
//顯示當(dāng)前下劃線高度 defalut is 2.0
- (CGFloat)tabBarViewControllerShowUnderlineHeight:(MMTabBarViewController *)tabBarViewController;
//=====================================MarkView=====================================
//顯示當(dāng)前遮罩層的顏色 defalut is #333333
- (UIColor *)tabBarViewControllerShowMarkViewBackgroundColor:(MMTabBarViewController *)tabBarViewController;
@end
4.demo效果:
MMTabBarViewGradientTypeMasking
沒有擴(kuò)展樣式的效果:
如果你覺得這篇文章對你有所幫助,歡迎like或star!謝謝悬蔽!
其他樣式請見demo扯躺。