如何响应触摸事件,该事件开始在视图外触摸并拖动在iOS中输入

我想在视图上响应这种触摸事件:开始在视图外触摸并拖动输入它。 我曾尝试使用iOS UIControlEvent,如UIControlEventTouchDragEnter,UIControlEventTouchDragInside和UIGesture,我发现没办法直接做到这一点。 最后,我以自己的方式实现它:创建UIView的自定义子类并覆盖方法(UIView *)hitTest:(CGPoint)指向withEvent:(UIEvent *)事件并将触发事件转发到响应者链。 在touchesBegan,touchesMoved,touchesEnded方法的父视图中,我使用UITouch对象的位置判断触摸视图外部并拖动输入它。 我不满意这种方式。 有没有人可以告诉我一个更有效和优雅的方法来解决它? 非常感谢你的时间和考虑。

开始在视图外触摸并拖动输入

你永远不能更“优雅”地做到这一点,因为如果你的初始触摸是在视图之外,那么它与这个视图无关,永远不会。 无论触摸的初始命中测试与之相关联的是什么视图,在整个手势中始终是此触摸视图的视图,触摸事件将仅发送到该视图。 命中测试的默认定义是初始触摸所在的视图是命中测试视图,并且假设不是您的视图。