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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM