因业务功能需要,要处理TabBarController的item双击事件。 查看了一下UITabBarController的属性和方法,发现并没有提供类似的功能,于是动手写一个。
第一印象是给TabBarItem添加手势,但后来发现UITabBarItem 只是一个NSObject ,是不可以添加手势的, 只有UITabBar可以。
给UITabBar添加手势,双击后是可以收到事件,但要计算点击的点的位置是不是在当前选中的Item上,感觉有点麻烦,后来发现 通过 UITabBarControllerDelegate 也可以实现类似功能。
- (BOOL)checkIsDoubleClick:(UIViewController *)viewController
{
static UIViewController *lastViewController = nil;
static NSTimeInterval lastClickTime = 0;
if (lastViewController != viewController) {
lastViewController = viewController;
lastClickTime = [NSDate timeIntervalSinceReferenceDate];
return NO;
}
NSTimeInterval clickTime = [NSDate timeIntervalSinceReferenceDate];
if (clickTime - lastClickTime >