将触摸事件从视图移交到其子视图之一

时间:2011-11-28 23:48:48

标签: objective-c ios cocoa-touch uigesturerecognizer

当触摸的初始位置在UIView子类的视图(下面)之外时,我想触发附加到UIView子类的UIPanGestureRecognizer。我有以下情况:

/-------------------/
| B                 |
|            /---/  |
|            | A |  |
|            /---/  |
|      C            |
|                   |
/-------------------/

A是附有Pan手势识别器的UIView,B是A的超视图,C是触摸的初始位置。然后将触摸移动到A中,现在我希望A接管触摸和Pan识别器的处理以识别手势并触发其回调功能。

据我所知,B由初始hitTest返回返回,因此将触发touchesBegan / Moved / Ended / Changed:触摸处理。

如何让A的手势识别器“接管”这种触摸的触摸处理?或者至少接收触摸,以便它可以识别平移手势?

我的目标是当我在A周围有多个子视图的情况下同时跟踪多个触摸时,使其工作,以便触摸可以“移交”给其中任何一个。

非常感谢任何关于如何解决这个问题的想法!

1 个答案:

答案 0 :(得分:0)

这可能不像你想要的那样“干净”,但我能想到做你想做的最好的方法是将手势识别器添加到superview“B”,然后有“B”循环遍历其子视图,以查看手势何时在特定子视图中,然后将消息发送到该子视图以执行所需的操作。

相关问题