iOS日常经验总结

iOS事件传递、响应者链、hitTest、pointInside

2020-08-24  本文已影响0人  牧羊的诗人

一、什么是事件传递

发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中,并将事件分发下去以便处理。通常,会先发送事件给应用程序的keyWindow,主窗口会在其视图层次结构中找到一个最合适的视图来处理触摸事件,这个找寻的过程就是事件传递

二、事件传递的过程

三、响应者链

响应者:继承UIResponder的对象称之为响应者对象,能够处理touchesBegan等触摸事件。
响应者链:由很多响应者链接在一起组合起来的一个链条称之为响应者链条

每个能执行hitTest:方法的view都属于事件传递的一部分,但是,只有pointInside返回YES的view才属于响应者链条

通过事件传递找到最合适的处理触摸事件的view后,它就是第一响应者。所以事件传递是自下而上,而响应者链是自上而下的。(window上最外面的那个view称为上)

四、实际应用

1、扩大响应范围;
2、根据响应者链找到当前的controller;
3、截获事件,让需要的view去响应这个事件;
等等。

上一篇下一篇

猜你喜欢

热点阅读