美文网首页
关于触摸

关于触摸

作者: una_sheng | 来源:发表于2019-07-25 15:07 被阅读0次
    事件分发

    所有触摸(Event、手势、Button) 的事件分发流程都是一样的。都是根据HitTest 方法找到这个视图

    事件响应

    所有触摸(Event、手势、Button) 的事件响应流程也是一样的。根据事件分发找到对应的View 后, 会尝试让这个View处理事件(UIControl的各种事件、UIGestureRecognizer等),若无法处理,则沿着响应链一步步向上寻找。
    一、默认情况下, 识别一个触摸事件时,手势识别优先于 UIResponder 响应链式机制,具体体现为:
    1、手势识别开始、变化的过程,gestureRecognizertouchesBegan touchesMoved同时处理响应事件。因为手势的delaysTouchesBegan属性默认为NOdelaysTouchesEnded默认是YES
    2、只有在gestureRecognizer 判定失败的时候(比如一个tapGestureRecognizer遇到一个longPressGestureRecognizer手势)系统才会触发 UIResponder 响应链式中的touchesEnded,否则,会触发touchesCancelled

    二、UIButton 与 触摸
    在iOS6及更高的版本中,默认控制操作可防止重复的手势识别行为。例如,按钮的默认操作是单击。如有有一个单击手势识别器附加到按钮的父视图,并且用户点击了按钮,则按钮的动作方法接收触摸事件而不是手势识别器。这仅适用于与控件的默认操作重叠的手势识别。

    参考文档

    https://blog.gocy.tech/2016/11/19/iOS-touch-handling/
    https://www.jianshu.com/p/53e03e558cbd

    相关文章

      网友评论

          本文标题:关于触摸

          本文链接:https://www.haomeiwen.com/subject/gqdhrctx.html