事件响应者链的理解
来源:互联网 发布:易特进销存软件破解版 编辑:程序博客网 时间:2024/06/05 10:05
1.一个点击事件发生时系统会先判断事件发生在哪些视图上,这个过程是从父视图向子视图方向的递归检查,以下图为例解释一下:
如果点击放生在E:
(1)点击区域发生在A视图,所以检查他的子视图B和C
(2)点击区域发生在C视图,所以终止B视图分支的检查,继续检查C视图的分支
(3)点击区域发生在E视图,所以终止D视图分支的检查,继续检查E视图的分支
(4)由于E视图没有子视图,所以E分支检查终止,继而整个检查过程结束
注:个人理解在检查这些视图及子视图的过程中,系统回创建一个栈,检查时当点击点在该视图则将视图添加到栈中,直到检查结束
2.上面完成后在理解事件相应者链就好理解了
如果A视图是视图控制器的view,那么就可以在执行上面的操作前将application和window,加入到栈中,执行完上面的操作后栈里的对象由栈底到栈顶得顺序是
application --> window --> view controller --> A --> C --> E,这就形成的响应者链,系统会以从E到application的顺序检查有没有可以接受并处理事件的对象,如果有则终止事件的传递并处理事件操作,如果没有一直传递下去,如果到application时还没有能够响应事件,则抛弃事件不做处理,这就是响应者链之间的传递过程,语言表达能力不是很好,但仔细理解一下就想通了
0 0
- 事件响应者链的理解
- iOS事件响应链传递的一些理解
- 事件响应者链
- 响应者链的事件传递过程
- iOS 的事件处理 响应者链
- 响应者链的事件传递过程
- iOS响应者链,事件的传递
- iOS 响应者链,事件的传递
- iOS 响应者链,事件的传递
- 响应者链 形象的理解
- IOS中触摸事件(touch event)的分发以及响应者链(The Responder Chain)机制理解
- 触摸事件<响应者链>
- ios-事件响应者链
- 触摸、事件、响应者链
- 事件分发 响应者链
- UI高级之事件的响应者链
- iOS事件的分发机制和响应者链(Swift)
- 事件的传递和响应(响应者链条)
- 堆和栈的区别
- 怎么获取屏幕的宽、高
- cococ2d-x成长记录贴1--菜单
- Android通过蓝牙HC06与Arduino通信实例
- 大端小端格式详解
- 事件响应者链的理解
- singleNumberⅢ
- POJ - 1080 - Human Gene Functions (LCS的变形)
- 怎么设置全屏、纵屏、横屏
- 个人理解,前端默默自学的感受及一些基本学习思路
- AVL树的旋转分析与实现
- maxen测试用例
- SetWindowPos详解
- kp之Flash and Me form bit101