美文网首页
iOS 响应链和事件传递的基本原理

iOS 响应链和事件传递的基本原理

作者: 深刻的你 | 来源:发表于2019-06-27 11:16 被阅读0次

    当用户发出事件后,会产生一个触摸事件,系统会将该事件加入到一个由UIApplication管理的事件队列中,UIApplication会取出队列中最前面的事件,发消息给UIWindow,然后UIWindow会对其所有子视图调用hitTest:withEvent:这个方法,这个方法会返回一个UIView的对象,这个方法在执行的时候,它会调用当前视图的pointInside:withEvent:这个方法,如果触摸事件在当前视图范围内,pointInside:withEvent:会返回YES,否则会返回NO;如果返回YES,则会遍历当前视图的所有子视图,统统发送hitTest:withEvent:这个消息,如果返回NO,则hitTest:withEvent:方法返回nil;

    上面说起来有些绕,其实就是:hitTest:withEvent:方法会一层一层的向上找,若最上层响应的子视图pointInside:withEvent:返回YES,则返回此子视图,如果所有的都返回nil,则返回当前视图本身self。

    相关文章

      网友评论

          本文标题:iOS 响应链和事件传递的基本原理

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