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. TFS 2012 在IE11和Chrome (Windows 8.1) 显示英文的解决方案

    1.如果使用IE11浏览TFS Web显示英文,请执行以下操作: 控制面板——>语言——>高级设置 将“替代Windows显示语言”改为“中文(中华人民共和国)”,同时勾选“Web语言”下 ...

  2. Hichart 资料收集

    Hichart简单使用Highcharts选项配置详细说明文档(zz) http://www.helloweba.com/view-blog-156.html  by 澳米科技 Highcharts提 ...

  3. android布局属性详解

    RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal  水平居中 android:layout_cen ...

  4. PHP表单数据写入MySQL代码

    <h1>插入操作</h1> <?php if(!isset($_POST['submit'])){ //如果没有表单提交,显示一个表单 ?> <form ac ...

  5. C#编程总结(四)多线程应用

    C#编程总结(四)多线程应用 多线程应用很广泛,简单总结了一下: 1)不阻断主线程,实现即时响应,由后台线程完成特定操作2)多个线程,完成同类任务,提高并发性能3)一个任务有多个独立的步骤,多个线程并 ...

  6. mybatis笔记2 基础理论准备

    之前发了一篇mybatis的crud入门笔记,算是入门了,为了让功力加深一级,来研究下mybatis的理论知识,哈哈,以后好拿来跟技术经理吹吹牛- 按照问题来吧!个人觉得有自主意识,带着自己的问题来研 ...

  7. Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

    Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch ...

  8. [python拾遗]异常处理

    异常 异常(Exception)是因为程序的例外.违例.出错等情况而在正常控制流以外采取的行为,一般分为如下两个阶段: 1.异常发生:一个错误发生后被打印出来,称为未处理异常,而默认的处理则是自动输出 ...

  9. C++静态库和动态库的区别

    转自http://www.cnblogs.com/skynet/p/3372855.html 什么是库? 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人 ...

  10. CI框架源码阅读笔记8 控制器Controller.php

    最近时间有些紧,源码阅读系列更新有些慢.鉴于Controller中代码比较少,本次Blog先更新该文件的源码分析. 在经过路由分发之后,实际的应用Controller接管用户的所有请求,并负责与用户数 ...