RDVTabBarController--可自由定制的iOS底部导航控件
来源:互联网 发布:unity3d 虚拟摇杆 编辑:程序博客网 时间:2024/05/24 06:28
- RDVTabBarController:一个十分完善的tabBarController,可以自定义角标个数,爽的停不下来。
- RDVTabBarController地址:RDVTabBarController
- Demo地址:欢迎Star
说明
- 此教程是旨在让你快速入手,如需更加深层次的了解,请直接RDVTabBarController地址分析即可;
使用
pod 'RDVTabBarController'
建议直接CocoaPods管理,对CocoaPods有兴趣的童鞋可以戳cocoapods-install-usage
结构
RDVTabBar @interface RDVTabBar : UIView
RDVTabBarController@interface RDVTabBarController : UIViewController
RDVTabBarItem@interface RDVTabBarItem : UIControl
RDVTabBarController Example Usage其实已经很详细了,接下来看初始化
//VString宏定义,为了就是更好的国际化语言,适配多语言,刚好此Demo也国际化了,可以参看https://github.com/sauchye/dev_notes/issues/4 #define VString(x) NSLocalizedString(x, nil)
- (void)setupViewControllers{ SYFirstViewController *firstVC = [[SYFirstViewController alloc] init]; SYSecondViewController *secondVC = [[SYSecondViewController alloc] init]; SYThirdViewController *thirdVC = [[SYThirdViewController alloc] init]; firstVC.title = VString(@"Home"); secondVC.title = VString(@"Found"); thirdVC.title = VString(@"Me"); self.firstNav = [[SYBaseNavigationController alloc] initWithRootViewController:firstVC]; self.secondNav = [[SYBaseNavigationController alloc] initWithRootViewController:secondVC]; self.thirdNav = [[SYBaseNavigationController alloc] initWithRootViewController:thirdVC]; [self setViewControllers:@[self.firstNav, self.secondNav, self.thirdNav]]; [self customizeTabBarForController];}
- (void)customizeTabBarForController{ //tabbar 背景图片 tabbar_background UIImage *backgroundImage = [UIImage imageNamed:@"tabbar_background"]; //选项卡图片 NSArray *tabBarItemImages; //这里添加tabBar icon图片 //= @[VString(@"First"), VString(@"Second"),VString(@"Third")]; NSArray *tabBarItemTitles = @[VString(@"Home"), VString(@"Found"), VString(@"Me")]; NSInteger index = 0; for (RDVTabBarItem *item in [[self tabBar] items]) { item.titlePositionAdjustment = UIOffsetMake(0, 2.0); [item setBackgroundSelectedImage:backgroundImage withUnselectedImage:backgroundImage]; UIImage *selectedimage = [UIImage imageNamed:[NSString stringWithFormat:@"%@_selected",[tabBarItemImages objectAtIndex:index]]]; UIImage *unselectedimage = [UIImage imageNamed:[NSString stringWithFormat:@"%@_normal",[tabBarItemImages objectAtIndex:index]]]; [item setFinishedSelectedImage:selectedimage withFinishedUnselectedImage:unselectedimage]; [item setTitle:[tabBarItemTitles objectAtIndex:index]]; item.selectedTitleAttributes = @{ NSFontAttributeName: [UIFont boldSystemFontOfSize:12], NSForegroundColorAttributeName:kNAVIGATION_BAR_COLOR, }; item.unselectedTitleAttributes = @{ NSFontAttributeName: [UIFont boldSystemFontOfSize:12], NSForegroundColorAttributeName:RGB(217, 217, 217), }; [item setTitle:[tabBarItemTitles objectAtIndex:index]]; index++; }}
这样你的tabBar基本搭建好了,但是还需要完善一些,比如,角标设置,push隐藏等。
Push隐藏tabBar,你只需要这样即可
- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [[self rdv_tabBarController] setTabBarHidden:YES animated:YES];}
设置角标数
[[self rdv_tabBarItem] setBadgeValue:@"3"];
RDVTabBarControllerDelegate,相信你看就会明白,好的方法命名很重要啊~
/*** Asks the delegate whether the specified view controller should be made active.*/- (BOOL)tabBarController:(RDVTabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;/*** Tells the delegate that the user selected an item in the tab bar.*/- (void)tabBarController:(RDVTabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
还有需要多等待你去发现…
结语
RDVTabBarController是一个很棒的第三方tabBarController,值得我们学习和思考。
- 相比传统第三方,你会发现可以很好的定制角标,这是极好的,当然你也可以自定义;
- 但是不能定义中间凸起的tabBar,好早之前去哪儿就是中间凸起一个tabBar,不过现在去哪儿也改成传统的tabBar了;
–
本文,由我们 iOS122 的小伙伴 @Sauchye供稿,更多讨论,参见: http://www.ios122.com/tag/rdvtabbarcontroller/
0 0
- RDVTabBarController--可自由定制的iOS底部导航控件
- RDVTabBarController--可自由定制的iOS底部导航控件
- RDVTabBarController--可自由定制的iOS底部导航控件的使用总结
- iOS RDVTabBarController
- 使用 RDVTabBarController 制作底部凸起的 TabBar 笔记
- 使用 RDVTabBarController 制作底部凸起的 TabBar教程
- iOS去掉导航栏底部的线
- iOS去掉导航栏底部的线
- Android一款可定制的日历控件
- IOS中导航的返回按钮定制
- iOS开发之导航栏的定制
- iOS截取特定区域的图片,然后拼接起来,可在图片上定制任意控件
- RDVTabBarController【iOS源码阅读】
- iOS 导航栏定制
- 一个解耦良好的计时控件,可自由扩展。
- Android 打造底部导航控件
- 炫酷的底部导航控件——BottomNavigationBar
- 底部导航栏控件BottomNavigationView的使用和修改样式
- Linux 技巧:让进程在后台可靠运行的几种方法
- crossdomain.xml怎么用
- android ndk MIPS Support
- 开关电源芯片选型
- volley字符串乱码问题
- RDVTabBarController--可自由定制的iOS底部导航控件
- Error Domain=NSCocoaErrorDomain Code=3840解决方法
- OTA升级
- Java和C++类成员初始化的区别
- 原装xp光盘装系统
- Arraylist HashMap HashSet 遍历
- JAVA中文乱码简单解决办法
- inittab文件介绍
- bootstrap modal垂直居中