0

我正在尝试在我的一个应用程序的屏幕上创建一个覆盖。理想情况下,叠加层将接收轻击手势,同时仍允许用户与叠加层下的视图进行交互。

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

self.overlay.userInteractionEnabled = NO;

但是,我注意到这似乎也禁用了覆盖视图上的点击手势。我在某处读到,从 iOS5 开始,可以在视图之间传递触摸。这让我相信可以在覆盖视图上捕获手势,对其进行处理,然后将它们传递给覆盖层下方的视图,从而产生“轻敲”覆盖层的印象。

有人可以指出手势识别器与 iOS5 中的视图共享触摸的方向,或者像我描述的类似覆盖的控制器吗?

如果有实现我所描述的替代方法,很高兴知道。

感谢您提供任何信息!

4

2 回答 2

0

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

[recognizer setCancelsTouchesInView:NO]

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

于 2013-03-30T21:15:00.740 回答
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

 }
于 2013-04-01T04:20:42.227 回答