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. 解决 DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 在VS2015 Update3 安装失败的问题

    今天抽空升级VS2015 Update3. 在安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 时报错了,看了错误日志 显示: 看到我标红的两个地方,那么 ...

  2. 【转载】关于BooleanQuery在搜索中的用处

    我们在搜索中可能会遇到要搜索索引文件中不同字段,不同字段之间就存在了与或非的运算关系,如:这个xx字段中必须存在什么什么关键词,而另一个 XXX字段可以存在或不存在什么什么关键词等等等.这就需要有Bo ...

  3. Winform图片拖拽与缩放

    最近做项目的时候遇到上传施工平面布置图,查看,因为图片比较大,一般的显示器分辨率无法显示全,然后还需要放大看清楚图片里面的文字内容,所以需要用到图片的拖拽与缩放功能.这里整理下具体操作. 首先新建一个 ...

  4. 动态dynamically变更母版_Layout页body标签css的class

    这个功能演示是Insus.NET最近想实现的一个功能,就是动态dynamically变更母版_Layout页body标签的样式css的class. 很多视图共同一个母版_Layout页,但是某一个视图 ...

  5. IBM和传统IT的沦落

    传统IT厂商沦落已经成为一种趋势.不仅仅是在中国去IOE的大背景下,在全球范围内,这些曾经盛极一时的IT大鳄也在衰落.作为一个在IBM服务了将近14年的老员工,我想浅谈一下IBM以及整个传统IT行业的 ...

  6. ASP.NET将文件写到另一服务器

    有时我们需要将来自于客户端的文件上传到WEB服务器端,并在服务端将文件存储到第三方文件服务器中存储. 实现如下: 1.在文件服务器B上建立一共享文件夹,同时在该服务器上创建一用户,如DocShareU ...

  7. 不可或缺 Windows Native (15) - C++: 命名空间

    [源码下载] 不可或缺 Windows Native (15) - C++: 命名空间 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 命名空间 示例CppNamespa ...

  8. ReportingServies——SQLServer报表开发综合实例

    如果我们安装了sqlserver2008 R2,将会自动安装一个报表开发工具 不要以为此报表开发工具只适合于sqlserver2008,其实在sqlserver2012中也是支持的,事实上我现在项目中 ...

  9. servlet同一用户不同页面共享数据

    如何实现不同页面之间的数据传递,实现页面的数据共享?常见的方法有以下4种: 1)表单提交(form) 2)sendRedirect()跳转 3)session技术 4)Cookie技术 表单提交 这是 ...

  10. C#操作Excel的函数

    对于Excel的数据处理功能,大家都已经了解. 我们经常需要将数据导入到Excel,或直接打开Excel文档,读写文件操作,这需要用到ExcelHelper类,有了这个类,这些操作大大的减少我们工作量 ...