iOS tabBar双击事件

思路: 在tabBarController的代理方法 shouldSelectViewController 中, 通过判断tabBar选中的控制器是否是当前控制器 并 比对两次点击的时间间隔 来判断是否是双击事件.

 

1. 先定义一个全局变量来记录上次点击的时间

 1 @property (strong, nonatomic) NSDate *lastDate; 

 

2. 实现代理方法中的事件

 1 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
 2     BESTBaseViewController *vc = tabBarController.selectedViewController;
 3     
 4     NSDate *date = [[NSDate alloc] init];
 5     if ([vc isEqual:viewController]) {
 6         // 处理双击事件
 7         if (date.timeIntervalSince1970 - _lastDate.timeIntervalSince1970 < 0.5) {
 8             POST_NOTIFY(NOTIFY_TABBAR_DOUBLE_CLICK, nil, nil)
 9         }
10         _lastDate = date;
11         
12         return NO;
13     }
14     return YES;
15 }

 

注: 在接收并实现通知方法的时候 需要注意过滤掉 三连击或以上的点击事件(可通过一个全局变量进行判断过滤)

1 - (void)notifyTabBarDoubleClick:(NSNotification *)noti {
2     if (self.active) {
3         if (_canDoubleClick) { // 全局变量默认为YES
4             _canDoubleClick = NO;
5             
6             [self queryHomeData];
7         }
8     }
9 }

 

转载于:https://www.cnblogs.com/xiaoc1314/p/6042246.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值