RDVTabBarController的基本使用 以及tabbar的防止双点击方法
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的防止双点击方法的更多相关文章
- 重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部
1.监听按钮点击 2.判断是否是点击的同一个按钮(记录上次点击的按钮) 3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面 3.1 判断是否重复点击按钮,代码写在哪里? ...
- iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变
可以选择是使用自定制的还是系统的,如果使用自定制的,就使用以下方法即可隐藏系统的uitabbarButton,从而使item恢复正确 //隐藏UITabBarButton -(void)viewWil ...
- 使用 RDVTabBarController 制作底部凸起的 TabBar 笔记
欢迎訪问我的个人博客http://mmoaay.photo/ 本文主要针对底部凸起的 TabBar 这样的特殊需求,不感兴趣的能够直接绕过- 近期做的一个项目须要底部凸起的 TabBar,效果例如以下 ...
- react-native的tabbar和navigator混合使用
前段时间搭建项目使用了navigator和react-native-tab-navigator,现在我教大家搭建一个通用的简单框架. 先把几张图贴在这里,这就是我们今天要搭建的东西,别看页面简单,但是 ...
- Swift开发小技巧--TabBar中间按钮的添加方案
TabBar中间按钮的添加方案 之前做百思项目的时候,也有一个中间按钮,当时是重写的TabBar,这里介绍一个新的方法 给TabbarVC多添加添加一个控制器,这个控制器的作用仅仅是用来占位的,多了这 ...
- [iOS微博项目 - 1.6] - 自定义TabBar
A.自定义TabBar 1.需求 控制TabBar内的item的文本颜色(普通状态.被选中状态要和图标一致).背景(普通状态.被选中状态均为透明) 重新设置TabBar内的item位置,为下一步在Ta ...
- iOS 屏幕旋转 nav+tabbar+present(网页) 2016
如题,最近一个app架构为 nav + tabbar ,需求是 在点击tabbar中的一个菜单项时,弹出网页,该网页需要横屏显示,其他页面不变 都保持竖屏. XCode Version 7.2.1 ...
- iOS 开源一个高度可定制支持各种动画效果,支持单击双击,小红点,支持自定义不规则按钮的tabbar
TYTabbarAnimationDemo 业务需求导致需要做一个tabbar,里面的按钮点击带有动画效果,tabbar中间的按钮凸出,凸出部分可以点击,支持badge 小红点等,为此封装了一个高度可 ...
- (六十三)自定义TabBar和TabBarButtonItem
自定义TabBar 先自定义一个UITabBarController,为了方便跳转与设定属性,借助系统的TabBarController的功能,但是要移除内部的控件然后自己添加一个View和多个按钮. ...
随机推荐
- [转]俞敏洪:我和马云就差了8个字... [来自: news.mbalib.com]
我和马云差了 8 个字:越败越战,愈挫愈勇. 马云,我真的非常的佩服他,首先佩服他的是他跟我有同样的经历,我考了 3 年才考上了大学:他也是考了 3 年.我比他还要幸运一点,我考上的是北大的本科,马云 ...
- 解读 C 语言中的指针
我想对很多学习C语言的新手来说,指针无疑是一个难点.但是,我觉得指针也是C语言特别重要的一个特性.也许,你在除了C和C++以外的编程语言中,很少看到指针.而C++中,也多用引用,而非指针.指针,作为一 ...
- asp.net MVC4的执行流程
MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteC ...
- SingalR--demo
原文链接 : http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and ...
- 孙鑫MFC学习笔记1.Windows应用程序运行机理
1.MSG结构 hwnd:窗口句柄 message:消息类型 wParam & lParam:消息的附加信息(比如键值) time:消息被投递的时间 tip:typedef的作用是从变量类型区 ...
- 【Java每日一题】20161102
package Nov2016; public class Ques1102 implements Parent{ @Override public void method() { } } inter ...
- ubuntu 下安装redis 以及php扩展
下载redis wget http://download.redis.io/redis-stable.tar.gz tar xzf redis-stable.tar.gz cd redis-s ...
- MAC 卸载 openfire
顺序执行以下命令: sudo rm -rf /Library/PreferencePanes/Openfire.prefPane sudo rm -rf /usr/local/openfire
- [Tool] SourceTree初始化GitFlow遇到错误(git command not found)的解决方案
[Tool] SourceTree初始化GitFlow遇到错误(git command not found)的解决方案 问题情景 使用SourceTree,可以方便开发人员快速的套用GitFlow开发 ...
- 控制器层(Controllers)
本章译者:@freewind 业务逻辑代码通常位于模型(model)层.客户端(比如浏览器)无法直接调用其中的代码,所以模型对象提供的功能,必须作为资源以URI方式暴露给外部. 客户端使用HTTP协议 ...