RDVTabBarController这个库写得相当不错,所以今天就简单介绍下它的基本使用,看里面可以清楚的知道代码规范的重要性,这个库的使用方法和官方的相识

下载地址:https://github.com/robbdimitrov/RDVTabBarController

首先写过控制器继承  RDVTabBarController,

AppDelegate里面的不多说

例如

 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

 RDVViewController *rootViewController = [[RDVViewController alloc] init];
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];

然后在

RDVViewController.m文件里

为了防止tabbar的双点击事件,设置代理<RDVTabBarControllerDelegate>,添加标示,用在点击事件

要设置tabbaritem的字体和图片,需导入文件

#import "RDVTabBarItem.h"

 #import "RDVViewController.h"
#import "ViewController.h"
#import "RDVTabBarItem.h" @interface RDVViewController ()<RDVTabBarControllerDelegate>
{
NSInteger selectedTabBarIiemTag;
}
@end @implementation RDVViewController - (void)viewDidLoad {
[super viewDidLoad]; ViewController *homeView=[[ViewController alloc]init];
UINavigationController *NAV1 = [[UINavigationController alloc] initWithRootViewController:homeView]; ViewController *View=[[ViewController alloc]init];
UINavigationController *NAV2 = [[UINavigationController alloc] initWithRootViewController:View]; ViewController *home=[[ViewController alloc]init];
UINavigationController *NAV3 = [[UINavigationController alloc] initWithRootViewController:home]; self.viewControllers = @[NAV1,NAV2,NAV3];
[self customizeTabBarForController:self];
self.delegate = self;
} - (void)customizeTabBarForController:(RDVTabBarController *)tabBarController { NSArray *tabBarItemImages = @[@"首页select", @"首页select",@"首页select"]; NSInteger index = ;
for (RDVTabBarItem *tabberItem in [[tabBarController tabBar] items]) { tabberItem.title = [NSString stringWithFormat:@"%ld",index+]; NSDictionary *tabBarTitleUnselectedDic = @{NSForegroundColorAttributeName:[UIColor blackColor],NSFontAttributeName:[UIFont systemFontOfSize:]};
NSDictionary *tabBarTitleSelectedDic = @{NSForegroundColorAttributeName:[UIColor blueColor],NSFontAttributeName:[UIFont systemFontOfSize:]};
//修改tabberItem的title颜色
tabberItem.selectedTitleAttributes = tabBarTitleSelectedDic;
tabberItem.unselectedTitleAttributes = tabBarTitleUnselectedDic;
tabberItem.tag = +index;
UIImage *selectedimage = [UIImage imageNamed:@"首页"];
UIImage *unselectedimage = [UIImage imageNamed:[NSString stringWithFormat:@"%@",
[tabBarItemImages objectAtIndex:index]]];
//设置tabberItem的选中和未选中图片
[tabberItem setFinishedSelectedImage:selectedimage withFinishedUnselectedImage:unselectedimage]; index++;
}
}

上面就满足基本使用方法了,为了防止双点击事件,已经设置了代理和tag值

这里的item不是tabbaritem,而是  rdv_tabBarItem,如果使用了tabBarItem的tag值,那是不存在的,因为这里设置的是rdv的tabBarItem

 #pragma mark - 防止tabbar双击
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { if(selectedTabBarIiemTag == viewController.rdv_tabBarItem.tag){ return NO; }else { selectedTabBarIiemTag = viewController.rdv_tabBarItem.tag;
return YES; }
}

RDVTabBarController的基本使用 以及tabbar的防止双点击方法的更多相关文章

  1. 重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部

    1.监听按钮点击   2.判断是否是点击的同一个按钮(记录上次点击的按钮)   3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面      3.1 判断是否重复点击按钮,代码写在哪里?   ...

  2. iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变

    可以选择是使用自定制的还是系统的,如果使用自定制的,就使用以下方法即可隐藏系统的uitabbarButton,从而使item恢复正确 //隐藏UITabBarButton -(void)viewWil ...

  3. 使用 RDVTabBarController 制作底部凸起的 TabBar 笔记

    欢迎訪问我的个人博客http://mmoaay.photo/ 本文主要针对底部凸起的 TabBar 这样的特殊需求,不感兴趣的能够直接绕过- 近期做的一个项目须要底部凸起的 TabBar,效果例如以下 ...

  4. react-native的tabbar和navigator混合使用

    前段时间搭建项目使用了navigator和react-native-tab-navigator,现在我教大家搭建一个通用的简单框架. 先把几张图贴在这里,这就是我们今天要搭建的东西,别看页面简单,但是 ...

  5. Swift开发小技巧--TabBar中间按钮的添加方案

    TabBar中间按钮的添加方案 之前做百思项目的时候,也有一个中间按钮,当时是重写的TabBar,这里介绍一个新的方法 给TabbarVC多添加添加一个控制器,这个控制器的作用仅仅是用来占位的,多了这 ...

  6. [iOS微博项目 - 1.6] - 自定义TabBar

    A.自定义TabBar 1.需求 控制TabBar内的item的文本颜色(普通状态.被选中状态要和图标一致).背景(普通状态.被选中状态均为透明) 重新设置TabBar内的item位置,为下一步在Ta ...

  7. iOS 屏幕旋转 nav+tabbar+present(网页) 2016

    如题,最近一个app架构为 nav + tabbar ,需求是 在点击tabbar中的一个菜单项时,弹出网页,该网页需要横屏显示,其他页面不变  都保持竖屏. XCode Version 7.2.1 ...

  8. iOS 开源一个高度可定制支持各种动画效果,支持单击双击,小红点,支持自定义不规则按钮的tabbar

    TYTabbarAnimationDemo 业务需求导致需要做一个tabbar,里面的按钮点击带有动画效果,tabbar中间的按钮凸出,凸出部分可以点击,支持badge 小红点等,为此封装了一个高度可 ...

  9. (六十三)自定义TabBar和TabBarButtonItem

    自定义TabBar 先自定义一个UITabBarController,为了方便跳转与设定属性,借助系统的TabBarController的功能,但是要移除内部的控件然后自己添加一个View和多个按钮. ...

随机推荐

  1. IHTMLDocument2

    {IHTMLDocument2 方法:} write //写入 writeln //写入并换行 open //打开一个流,以收集 document.write 或 document.writeln 的 ...

  2. 质数的判断,实现bool IsPrime(int number)

    1.重复输入一个数,判断该数是否是质数,输入q结束?质数的判断用方法来实现bool IsPrime(int number) static void Main(string[] args) { // 要 ...

  3. Swift 3 迁移工作总结

    写在前面 Swift 3.0 正式版发布了差不多快一个月了,断断续续的把手上和 Swift 相关的迁移到了Swift 3.0.所以写点小总结. 背景 代码量(4万行) 首先,我是今年年初才开始入手 S ...

  4. Hibernate框架之双向多对多关系映射

    昨天跟大家分享了Hibernate中单向的一对多.单向多对一.双向一对多的映射关系,今天跟大家分享下在Hibernate中双向的多对多的映射关系 这次我们以项目和员工举个栗子,因为大家可以想象得到,在 ...

  5. 再探OAuth2

    原文: http://www.cnblogs.com/Irving/p/4134629.html web:http://oauth.net/2/ rfc: http://tools.ietf.org/ ...

  6. springmvc(2)Controller源码简单解析

    前面简单的分析了一下DispatcherServlet,接下来分析一下Controller,在web的MVC中,Controller就是其中的C,启动的一些页面逻辑处理,页面映射的功能: 首先看看超类 ...

  7. sublime text 开发常用插件

    一.emmet插件 (HTML/CSS代码快速编写插件) 安装步骤:打开Sublime菜单栏>首选项>Package Control> 输入>Package Control: ...

  8. Gym 101102C---Bored Judge(区间最大值)

    题目链接 http://codeforces.com/gym/101102/problem/C problem description Judge Bahosain was bored at ACM ...

  9. go的markdown解析库和session库

    最近学习go,就决定做一个博客来练练手,一下是用到的一些不错的库 markdown解析库 使用markdown来写博客文章,我用的是"github.com/russross/blackfri ...

  10. CI框架源码阅读笔记9 CI的自动加载机制autoload

    本篇并不是对某一组件的详细源码分析,而只是简单的跟踪了下CI的autoload的基本流程.因此,可以看做是Loader组件的分析前篇. CI框架中,允许你配置autoload数组,这样,在你的应用程序 ...