黑客ios ui响应链

时间:2012-05-25 15:25:26

标签: ios cocoa-touch uiscrollview uiresponder

我正面临一个处理触摸事件的问题。这可能不是常见的东西,但我认为这是可能的。我只是不知道......

我有一个主视图(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,但滚动视图取消了触摸,但它只在某些情况下有效。

我需要一种一致的方法来首先捕获触摸,检测它是否是一个双指平移,然后才决定它是否会向下传递(或向上......我不确定)响应者链。

我尝试创建一个顶级视图来处理它,但我不能让触摸通过该视图传递。

我发现很多人遇到类似的问题,但无法从他们的解决方案中找到解决这个问题的方法。

如果有人能给我一个亮光,那就太好了,因为我已经绝望了。

1 个答案:

答案 0 :(得分:0)

您可以创建顶级视图来捕捉触摸和触摸的坐标,然后您可以检查触摸的坐标是否在子视图内。您可以使用

执行此操作
BOOL CGRectContainsPoint(CGRect rect, CGPoint point)

方法。 Rect是视图的一个框架,point是触摸点。

请注意,框架和触摸位置与其超级视图无关,因此您需要将它们转换为应用程序窗口的坐标系。

或者它可能会更有帮助

Receiving touch events on more then one UIView simultaneously