【问题标题】:How to response a touch event which begin to touch down outside of a view and drag enter it in iOS如何响应开始在视图之外触摸并在iOS中拖动进入的触摸事件
【发布时间】:2017-03-17 04:37:25
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c iphone uikit uigesturerecognizer


    【解决方案1】:

    开始在视图之外触地并拖动进入它

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

    【讨论】:

    • 感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多