page contents

触摸事件的传递

发布于 2021-08-27 09:31
阅读 460
收藏 0
分类:开发环境
  • ios
  • 1785
    Nen
    Nen
    - 程序员

    触摸事件的传递是从父控件传递到子控件

    如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件

    不能接受触摸事件的四种情况

    不接收用户交互,即:userInteractionEnabled = NO

    隐藏,即:hidden = YES

    透明,即:alpha <= 0.01

    未启用,即:enabled = NO

    提示:UIImageView的userInteractionEnabled默认就是NO,因此UIImageView以及它的子控件默认是不能接收触摸事件的


    如何找到最合适处理事件的控件:

    首先,判断自己能否接收触摸事件

    可以通过重写hitTest:withEvent:方法验证

    其次,判断触摸点是否在自己身上

    对应方法pointInside:withEvent:

    从后往前(先遍历最后添加的子控件)遍历子控件,重复前面的两个步骤

    如果没有符合条件的子控件,那么就自己处理

    请先 登录 后评论