我正在尝试在我的某个应用的屏幕上创建叠加层。理想情况下,叠加层会接收点击手势,同时仍然允许用户与叠加层下的视图进行交互。
我知道视图可以通过将userInteractionEnabled
属性设置为NO来“点击”。这允许用户与相关视图下方的视图进行交互:
self.overlay.userInteractionEnabled = NO;
但是,我注意到这似乎也禁用了叠加视图上的点按手势。我读到了从iOS5开始可以在视图之间传递触摸的地方。这使我相信可以在叠加视图上捕获手势,处理它们,然后将它们传递到叠加层下方的视图,从而创建“点击”叠加层的印象。
有人能指出我在iOS5中分享触摸视觉识别器的方向,或像我正在描述的覆盖式控制器吗?
如果有另一种方法可以实现我所描述的内容,那么最好知道。
感谢您提供任何信息!
答案 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
}