RDVTabBarController的基本使用 以及tabbar的防止双点击方法

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

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

首先写过控制器继承  RDVTabBarController,

AppDelegate里面的不多说

例如

1 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
2
3 RDVViewController *rootViewController = [[RDVViewController alloc] init];
4 self.window.rootViewController = rootViewController;
5 [self.window makeKeyAndVisible];

然后在

RDVViewController.m文件里

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

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

#import "RDVTabBarItem.h"

 1 #import "RDVViewController.h"
 2 #import "ViewController.h"
 3 #import "RDVTabBarItem.h"
 4
 5 @interface RDVViewController ()<RDVTabBarControllerDelegate>
 6 {
 7     NSInteger selectedTabBarIiemTag;
 8 }
 9 @end
10
11 @implementation RDVViewController
12
13 - (void)viewDidLoad {
14     [super viewDidLoad];
15
16     ViewController *homeView=[[ViewController alloc]init];
17     UINavigationController *NAV1 = [[UINavigationController alloc] initWithRootViewController:homeView];
18
19     ViewController *View=[[ViewController alloc]init];
20     UINavigationController *NAV2 = [[UINavigationController alloc] initWithRootViewController:View];
21
22     ViewController *home=[[ViewController alloc]init];
23     UINavigationController *NAV3 = [[UINavigationController alloc] initWithRootViewController:home];
24
25     self.viewControllers = @[NAV1,NAV2,NAV3];
26     [self customizeTabBarForController:self];
27     self.delegate = self;
28 }
29
30 - (void)customizeTabBarForController:(RDVTabBarController *)tabBarController {
31
32     NSArray *tabBarItemImages = @[@"首页select", @"首页select",@"首页select"];
33
34     NSInteger index = 0;
35     for (RDVTabBarItem *tabberItem in [[tabBarController tabBar] items]) {
36
37         tabberItem.title = [NSString stringWithFormat:@"%ld",index+1];
38
39         NSDictionary *tabBarTitleUnselectedDic = @{NSForegroundColorAttributeName:[UIColor blackColor],NSFontAttributeName:[UIFont systemFontOfSize:15]};
40         NSDictionary *tabBarTitleSelectedDic = @{NSForegroundColorAttributeName:[UIColor blueColor],NSFontAttributeName:[UIFont systemFontOfSize:15]};
41         //修改tabberItem的title颜色
42         tabberItem.selectedTitleAttributes = tabBarTitleSelectedDic;
43         tabberItem.unselectedTitleAttributes = tabBarTitleUnselectedDic;
44         tabberItem.tag = 100+index;
45         UIImage *selectedimage = [UIImage imageNamed:@"首页"];
46         UIImage *unselectedimage = [UIImage imageNamed:[NSString stringWithFormat:@"%@",
47                                                         [tabBarItemImages objectAtIndex:index]]];
48         //设置tabberItem的选中和未选中图片
49         [tabberItem setFinishedSelectedImage:selectedimage withFinishedUnselectedImage:unselectedimage];
50
51         index++;
52     }
53 }

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

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

 1 #pragma mark - 防止tabbar双击
 2 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
 3
 4     if(selectedTabBarIiemTag == viewController.rdv_tabBarItem.tag){
 5
 6         return NO;
 7
 8     }else {
 9
10         selectedTabBarIiemTag = viewController.rdv_tabBarItem.tag;
11         return YES;
12
13     }
14 }
时间: 2024-08-29 18:05:09

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

使用UITabBarController创建Tabbar获取tabBarItem的点击方法

项目中有涉及到拨号键盘的弹出,想要在点击控制器的时候键盘回收,再点击下面的Tabbar实现键盘出现.由于正常情况下,当在当前界面的时候,点击下面的tabbar是不再相应的.这里就需要找到能执行tabbar点击事件的代理方法. 第一步:需要在主控制器执行代理UITabBarControllerDelegate; 第二步:执行代理方法: - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewContr

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

1.监听按钮点击 2.判断是否是点击的同一个按钮(记录上次点击的按钮) 3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面 3.1 判断是否重复点击按钮,代码写在哪里? 点击标题按钮,属于精华控制器的事情,所以找到精华控制器.写在点击按钮方法里面 3.2怎么拿到按钮对应的控制器? 通过当前按钮的tag值,从精华控制器的子控制器数组中去 3.3怎么让对应的控制器刷新界面? 在对应的控制器里面提供刷新方法,这样每个控制器都要写,太麻烦 之前我们抽取了父类,只需要在父类中提供一个刷新界面方法

ios中解决自定义tabbar跳转隐藏问题的方法

在ios开发(http://www.maiziedu.com/course/ios/)中,如何自定义tabbar高度的跳转隐藏问题,比如和系统自带的tabbar高度不一样导致的有一条线的问题,还有push时动画效果等等一些列问题不在这里累述了,当然,思路有很多,可以参考以上链接自己琢磨琢磨,好了,下面直接上个人认为完美解决办法. 需求 1.自定义tabbar,不用系统的tabbar 2.第二点需求是自定义tabbar的高度和系统的不一样,系统的tabbar高度为49,就是因为这点导致第三个需求有

iOS设置导航与其标题的颜色及字体大小和系统默认TabBar的相关设置与使用方法

第一步: //在info.plist中添加一个字段:view controller -base status bar 设置为NO://导航颜色[[UINavigationBar appearance] setBarTintColor:[UIColor XXXX]];[[UITableViewCell appearance] setBackgroundColor:[UIColor XXXX]]; //设置状态栏(信号区)白色[[UIApplication sharedApplication] se

swift tabbar 跳转子页面时隐藏方法

//注意:在push后设置self.hidesBottomBarWhenPushed=NO; //这样back回来的时候,tabBar会恢复正常显示. let detailCtrl = ScanViewController(nibName: "ScanViewController", bundle: nil); //detailCtrl.hidesBottomBarWhenPushed = true self.hidesBottomBarWhenPushed = true self.n

IOS 自定义TabBar选中时为蓝色解决方法

- (id) initWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage 使用该方法设置会图片选中时会变成蓝色的. 如果不希望成为蓝色需改变图片的属性为UIImageRenderingModeAlwaysOriginal具体代码如下 [self setImage:[image imageWithRenderingMode:UIImageRenderingModeAlwa

iOS开发-UI (十一) UITabBarController

知识点: 1.UITabBarController使用 2.UITabBarItem使用 关于TabBarController除了本次整理的内容,有兴趣的可以看下我以前发过的这两篇,在实际开发中很实用的东西. RDVTabBarController的基本使用 以及tabbar的防止双点击方法 从tabBarController的一个item上的控制器跳转到另一个item上的控制器 ======================= UITabBarController 1.创建方式 2.如何把一个U

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

A.自定义TabBar 1.需求 控制TabBar内的item的文本颜色(普通状态.被选中状态要和图标一致).背景(普通状态.被选中状态均为透明) 重新设置TabBar内的item位置,为下一步在TabBar中部添加“+”按钮做准备 github: https://github.com/hellovoidworld/HVWWeibo 系统默认样式: 选中时item字体颜色为蓝色 完成之后的样式: 2.思路 封装TabBar,继承UITabBar,重写有关TabBar内部控件的位置设置方法 使用K

微信小程序自定义tabbar的问题

个人感觉小程序的tab样式自定义的能力有所欠缺,不够美观,于是今天自己diy了一个tab 测试的时候发现,无论是使用navigator跳转(会出现点击的效果)还是用bindtap(触摸),因为没有定义tabbar, 跳转的方式都只能是页面重定向的,导致tab页上的ABCD互相跳转的时候,每次都会重新渲染视图,由此带来的 视觉效果很不好,没有系统tabbar跳转地自然,万般无奈之下,只好用回系统自带的tabbar. 如果你有好的方法能够解决自定义tabbar跳转重新渲染的问题,烦请告知,在此谢过!