Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何响应在视图外开始触碰并在iOS中拖动并输入的触碰事件_Ios_Objective C_Iphone_Uikit_Uigesturerecognizer - Fatal编程技术网

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

如何响应在视图外开始触碰并在iOS中拖动并输入的触碰事件,ios,objective-c,iphone,uikit,uigesturerecognizer,Ios,Objective C,Iphone,Uikit,Uigesturerecognizer,我想在视图上响应这种触摸事件:开始在视图外触摸并拖动鼠标进入。我已尝试使用iOS uicontrol事件,如uicontrolEventTouchDragener、UIControlEventTouchDragInside和UISignature,但我发现没有办法直接做到这一点。 最后,我用自己的方式实现它:创建UIView的自定义子类,并用event:UIEvent*event和forward touch event覆盖方法UIView*hitTest:CGPointpoint,直到响应者链。

我想在视图上响应这种触摸事件:开始在视图外触摸并拖动鼠标进入。我已尝试使用iOS uicontrol事件,如uicontrolEventTouchDragener、UIControlEventTouchDragInside和UISignature,但我发现没有办法直接做到这一点。 最后,我用自己的方式实现它:创建UIView的自定义子类,并用event:UIEvent*event和forward touch event覆盖方法UIView*hitTest:CGPointpoint,直到响应者链。在父视图的touchesBegind、touchesMoved、toucheSend方法中,我使用UITouch对象的位置来判断视图外部的触地,并拖动鼠标进入。 我对这种方式不满意。有没有人能告诉我一个更有效、更优雅的解决方法?非常感谢您的时间和考虑

开始在视图外部触地并拖动鼠标进入视图


您永远无法更优雅地完成此操作,因为如果您的初始触地在视图之外,则它与此视图不关联,也永远不会关联。无论触摸的初始点击测试与哪个视图相关联,该视图在整个手势中始终是该触摸的视图,触摸事件将仅发送到该视图。点击测试的默认定义是,初始触摸在内部的视图是点击测试视图,而根据假设,这不是您的视图。

谢谢您的回答。