iPad iOS6是否可以使视图“点按”,同时保持该视图上的手势识别器处于活动状态?

时间:2013-03-29 15:04:09

标签: ipad uiview ios6 uitapgesturerecognizer user-interaction

我正在尝试在我的某个应用的屏幕上创建叠加层。理想情况下,叠加层会接收点击手势,同时仍然允许用户与叠加层下的视图进行交互。

我知道视图可以通过将userInteractionEnabled属性设置为NO来“点击”。这允许用户与相关视图下方的视图进行交互:

self.overlay.userInteractionEnabled = NO;

但是,我注意到这似乎也禁用了叠加视图上的点按手势。我读到了从iOS5开始可以在视图之间传递触摸的地方。这使我相信可以在叠加视图上捕获手势,处理它们,然后将它们传递到叠加层下方的视图,从而创建“点击”叠加层的印象。

有人能指出我在iOS5中分享触摸视觉识别器的方向,或像我正在描述的覆盖式控制器吗?

如果有另一种方法可以实现我所描述的内容,那么最好知道。

感谢您提供任何信息!

2 个答案:

答案 0 :(得分:0)

将以下内容添加到手势识别器中:

[recognizer setCancelsTouchesInView:NO]

一个布尔值,用于影响在识别手势时是否将触摸传递到视图。

答案 1 :(得分:0)

我最终只是浏览了所有容器视图,弄清楚是否在其中一个框架内发生了水龙头,并处理了这种触摸。这不是一个非常有效的解决方案,但它确实有效。

for(UIView* container in self.view.subviews)
{

    location = [gestureRecognizer locationInView:container];

    frame = container.frame;
    location = [gestureRecognizer locationInView:container.dummyZoomView];
    foundTappableObject = CGRectContainsPoint(frame, location);
   //do whatever with the view which was tapped

 }