我正面临着一个处理触摸事件的复杂问题。这肯定不是一个常见的东西,但我认为这是可能的。我只是不知道怎么..。
我有一个主视图(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上,但滚动视图取消了这些操作,而且它只在某些时候起作用。
我需要一个一致的方法来首先捕获触摸,检测它是否是一个两个手指平移,然后才决定是否会通过触摸向下(或向上…我不确定)响应器链。
我试着创建一个顶层视图来处理这个问题,但是我不能让触摸通过这个视图。
我发现很多人都有类似的问题,但从他们的解决方案中找不到解决这个问题的方法。
如果有人能给我一盏灯,那就太好了,因为我已经对此感到绝望了。
发布于 2012-05-25 23:57:09
您可以创建一个顶级视图来捕获触摸和触摸的坐标,然后您可以检查触摸的坐标是否在子视图内。您可以使用以下命令完成此操作
BOOL CGRectContainsPoint(CGRect rect, CGPoint point)方法。矩形是视图的框架,点是接触点。
请注意,框架和触摸位置是相对于它们的超级视图的,因此您需要将它们转换为应用程序窗口的坐标系。
或者它可能会更有帮助
Receiving touch events on more then one UIView simultaneously
https://stackoverflow.com/questions/10757154
复制相似问题