需求
之前已经实现了自定义TabBar,如图所示:
自定义TabBar.jpeg
现在需要实现一个类似今日头条TabBar的功能 —— 如果继续点击当前TabBar的选中项,那么该界面需要刷新UITableView。
分析
既然已经自定义了TabBar,那么最简单的就是在自定义中给TabBar中需要的UITabBarButton添加事件 —— 点击就发送通知,并且将当前的索引传出去。对应的界面监听通知,拿到索引比对,如果和当前索引一致,就执行对应的操作。
实现
1. 自定义TabBar的layoutSubviews中绑定事件
- (void)layoutSubviews { [super layoutSubviews]; for (UIButton * tabBarButton in self.subviews) { if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) { //监听tabbar的点击 //绑定tag 标识 tabBarButton.tag = index; //监听tabbar的点击 [tabBarButton addTarget:self action:@selector(tabBarButtonClick:) forControlEvents:UIControlEventTouchUpInside]; } } }
2. 监听事件,发送通知
- (void)tabBarButtonClick:(UIControl *)tabBarBtn{ //判断当前按钮是否为上一个按钮 //再次点击同一个item时发送通知出去 对应的VC捕获并判断 if (self.previousClickedTag == tabBarBtn.tag) { [[NSNotificationCenter defaultCenter] postNotificationName: @"DoubleClickTabbarItemNotification" object:@(tabBarBtn.tag)]; } self.previousClickedTag = tabBarBtn.tag; }
对应的UIViewController监听通知
- (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(doubleClickTab:) name:@"DoubleClickTabbarItemNotification" object:nil]; }
3. 监听到通知,比对后执行操作
-(void)doubleClickTab:(NSNotification *)notification{ //这里有个坑 就是直接用NSInteger接收会有问题 数字不对 //因为上个界面传过来的时候封装成了对象,所以用NSNumber接收后再取值 NSNumber *index = notification.object; if ([index intValue] == 1) { //刷新 } }
最终的效果请看:
总结
以上所述是小编给大家介绍的iOS开发中TabBar再次点击实现刷新效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍IOS实现点击滑动抽屉效果,包括了IOS实现点击滑动抽屉效果的使用技巧和注意事项,需要的朋友参考一下 最近,看到好多Android上的抽屉效果,也忍不住想要自己写一个。在Android里面可以用SlidingDrawer,很方便的实现。IOS上面就只有自己写了。其实原理很简单就是 UIView 的移动,和一些手势的操作。 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助。
本文向大家介绍iOS开发中Quartz2D控制圆形缩放和实现刷帧效果,包括了iOS开发中Quartz2D控制圆形缩放和实现刷帧效果的使用技巧和注意事项,需要的朋友参考一下 Quartz2D简要回顾 一、什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制
本文向大家介绍iOS实现手指点击出现波纹的效果,包括了iOS实现手指点击出现波纹的效果的使用技巧和注意事项,需要的朋友参考一下 实现来看看模拟器上效果: 具体的实现代码如下 首先监听控制器view的Tap事件 FingerWaveView.h FingerWaveView.m 总结 大家也可以DIY我的代码,做出很多其他的效果,比如改成其他的波纹颜色。以上就是这篇文章的全部内容了,希望本文的内容u
本文向大家介绍jQuery实现点击旋转,再点击恢复初始状态动画效果示例,包括了jQuery实现点击旋转,再点击恢复初始状态动画效果示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现点击旋转,再点击恢复初始状态动画效果。分享给大家供大家参考,具体如下: 今天遇到要做一个点击 + 然后开始旋转动画后变成 x 具体实现如下 1.HTML 2.CSS 3.JQ 效果: 感兴
本文向大家介绍详解iOS开发中UItableview控件的数据刷新功能的实现,包括了详解iOS开发中UItableview控件的数据刷新功能的实现的使用技巧和注意事项,需要的朋友参考一下 实现UItableview控件数据刷新 一、项目文件结构和plist文件 二、实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运行界面: 点击选中行: 修改数
本文向大家介绍jquery实现点击页面计算点击次数,包括了jquery实现点击页面计算点击次数的使用技巧和注意事项,需要的朋友参考一下 代码很简单,这里就不多废话了,直接奉上: 代码就到这里了,希望小伙伴们喜欢。