0

我有一个关于如何向 UITabBarController 添加点击手势的问题。由于 UITabBarController 已经内置了点击手势(响应对标签栏上的标签栏项目的点击),虽然从技术上讲,我可以将自己的手势添加到 tabBarController,但 tabBar 失去了自己的原生点击手势。以下是我正在尝试做的事情:

UIViewController *VC1 = ....;
UIViewController *VC2 = ....;

UITabBarController  *tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects: VC1, VC2, nil];
UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc]
                                             initWithTarget:VC1
                                                        action:@selector(tap:)];




[tabBarController.view addGestureRecognizer:tapGR];

这正确响应了点击方法“tap:”,但 tabBarController 失去了对点击栏项目的本机点击响应。我尝试将手势添加到 tabBarController 中的视图控制器之一,如下所示:

[VC1.view addGestureRecognizer:tapGR];

但是以这种方式执行此操作时,根本无法识别点击手势,尽管保留了 tabBar 对标签栏项目的点击的原生点击识别。

有人对如何解决此类问题有任何建议吗?我想一种方法是选择另一种手势,而不是点击与 tabBarController 一起使用,但我真的不想那样做......

非常感谢观看!

4

1 回答 1

1

我不得不想知道你到底想用已经处理水龙头的控件上的水龙头做什么。请考虑您所做的事情是否会让您的用户感到困惑。

但如果必须,请尝试cancelsTouchesInView在手势识别器上设置为 NO。除了由您的识别器处理之外,这应该允许将触摸传递给视图。

于 2011-04-05T17:48:58.970 回答