我正面临一个处理触摸事件的问题。这可能不是常见的东西,但我认为这是可能的。我只是不知道......
我有一个主视图(A)和主视图(B),其中有很多子视图1,2,3,4,5 ......
MainView
SubView(A)
1
2
3
SubView(B)
1
2
3
其中一些子视图(1,2,4)是滚动视图。
碰巧我想用两个手指平移来改变A和B.
我尝试将UIPanGestureRecognizer附加到MainView,但滚动视图取消了触摸,但它只在某些情况下有效。
我需要一种一致的方法来首先捕获触摸,检测它是否是一个双指平移,然后才决定它是否会向下传递(或向上......我不确定)响应者链。
我尝试创建一个顶级视图来处理它,但我不能让触摸通过该视图传递。
我发现很多人遇到类似的问题,但无法从他们的解决方案中找到解决这个问题的方法。
如果有人能给我一个亮光,那就太好了,因为我已经绝望了。
答案 0 :(得分:0)
您可以创建顶级视图来捕捉触摸和触摸的坐标,然后您可以检查触摸的坐标是否在子视图内。您可以使用
执行此操作BOOL CGRectContainsPoint(CGRect rect, CGPoint point)
方法。 Rect是视图的一个框架,point是触摸点。
请注意,框架和触摸位置与其超级视图无关,因此您需要将它们转换为应用程序窗口的坐标系。
或者它可能会更有帮助
Receiving touch events on more then one UIView simultaneously