事件的产生,传递以及响应链

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事件的产生,传递以及响应链相关的知识,希望对你有一定的参考价值。

每个事件对应一个UITouch,继承UIResponse的类(UIView,UIViewController)都能响应事件,实现Touch的代理即可对事件做出处理

 

每个事件产生后都会保存在UIApplication的事件队列中,事件的传递是取第一个事件从父控件传递到子控件。

关于找到最合适的控件处理事件,分几个步骤:

1.先判定自身能否接受事件(userInteractionEnabled为YES,hidden为NO,alpha大于0.01

2.事件的点在自身范围内

3.从后往前遍历子控件,取最上面的子视图。重复1.2。

 

事件的响应链:

如果自身没有响应事件的方法,传给父视图,父视图没有实现,传给父控制器,再到window,再到UIApplication对象,最后丢弃

以上是关于事件的产生,传递以及响应链的主要内容,如果未能解决你的问题,请参考以下文章

iOS中的事件传递和响应者链

iOS开发 - 事件传递响应链

ios中事件的响应链(Responder chain)和传递链

iOS开发 - 事件传递响应链

QT Designer 菜单栏事件响应问题。

事件传递和响应机制