UIView,如何确定何时触摸进入视图

Gen*_*ari 11 iphone objective-c mkmapview touches

似乎只有触摸在该视图的边界内开始时才会调用UIView的所有触摸方法.有没有办法让视图响应在视图外触摸但随后将手指拖入视图的用户?

如果重要,我的具体应用是拖动MKPinAnnotationView(使用内置的4.0拖动).如果用户将一个引脚拖动到另一个视图(这恰好是一个AnnotationView,但它可能是任何东西),我想要发生一些事情.在我放开引脚之前,没有调用拖动的方法; 并且没有方法没有被拖动的UIView似乎被调用,除非我从视图中触摸开始.

因为superview是MKMapView,所以很难只使用touchesMoved事件并检查用户是否在正确的位置.谢谢!

Gen*_*ari 3

因此,在玩了一段时间后,我发现这里给出的答案实际上给了我我需要的东西,尽管提出的问题不同。

事实证明,您可以对 UIGestureRecognizer 进行子类化;并让它处理已添加到的视图(包括 MKMapView)的所有触摸。这允许所有正常的 MKMapView 交互仍然可以正常运行,没有任何问题;但也提醒我触摸。在touchesMoved中,我只是检查触摸的位置;看看它是否在我的其他观点的范围内。

从我尝试过的一切来看;这似乎是用户拖动 MKAnnotation 时拦截 TouchMoved 的唯一方法。