事件的处理的完成过程

1.事件的完整处理过程:

1> 先将事件对象由上往下传递(由父控件传递给子控件), 找到最合适的控件来处理这个事件

2> 调用最合适控件的touches.....方法

3> 如果调用了[super touches...];就会将事件顺着响应者链条往上传递,传递给上一个响应者

4> 接着就会调用上一个响应者的touches.....方法

2.什么是响应者链条?

1> 响应者链条是由多个响应者对象连接起来的链条(什么是响应者对象: 能处理事件的对象)

2> 利用响应者链条, 能让多个控件 处理 同一个触摸事件

3> 怎么利用链条往上传递?谁是上一个响应者

3.谁是上一个响应者(nextResponder)

1> 如果当前这个view是控制器的view, 那么控制器就是上一个响应者

2> 如果当前这个view不是控制器的view, 那么父控件就是上一个响应者

时间: 2024-10-07 09:02:29

事件的处理的完成过程的相关文章

Android输入事件从读取到分发五:事件分发前的拦截过程

在前面的文章:Android输入事件从读取到分发三:InputDispatcherThread线程分发事件的过程 一文中已经提过事件在分发前要做拦截的事情,只不过当时没有展开来分析,因此这篇文章的主要目的就是分析事件在分发前的拦截过程.(注:Android源码版本为6.0) 在Android输入事件从读取到分发三:InputDispatcherThread线程分发事件的过程 一文中我们分析到InputDispatcher类的notifyKey方法中,第一次尝试拦截事件,可以在看看这个方法: vo

Dom 事件和JavaScript的词法分析过程

dom自带了很多事件,常见的如下所示 当触发这些事件的时候,我们可以执行自定义的各种函数. 一般说来,绑定事件有3种方法. 第一种方法,直接在标签上面绑定,比如 <input id='i1' type='button' onclick='ClickOn(this)'> function ClickOn(self){ } 第二种方法,是先获取Dom对象,然后进行绑定.比如 <input id='i1' type='button' > document.getElementById('

15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??

应用前边两节上一章节的内容,大家可以完成一个简单的界面,但是没有任何的功能,界面完全是静态的,如果要实现具体功能的话,必须要学习事件模型. 事件模型简介及常见事件模型 对于采用了图形用户界面的程序来说,事件控制是非常重要的. 一个源(事件源)产生一个事件并把它(事件对象)送到一个或多个监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接收,监听器将处理这些事件. 一个事件源必须注册监听器以便监听器可以接收关于一个特定事件的通知. 每种类型的事件都有其自己的注册方法,一般形式为: v

ajax用beforeSend自定义请求过程中客户端事件,提高用户体验

本文为博主原创,未经允许不得转载: 在应用ajax的过程中,当我们再前台提交请求的时候,如果服务端响应事件比较长,就会导致需要等很长时间在前台才能接受到服务端返回的 响应结果,往往会导致用户重复点击按钮,进行重复请求,如何可以避免这种情况发生,ajax提供了一个beforeSend属性,用这个既可以避免这种 情况发生. 用这个属性可以定义客户端向服务端请求过程中的事件,比如在请求过程中禁用请求按钮的属性,或定义请求加载状态等, 实现的代码如下: function exportData(){ $.

关于android中事件传递和分发的一些小理解

android中 当我们的手指触摸屏幕将产生一个事件, (假设 这个过程中如果没有显示的去拦截该事件的话)   这个事件会逐级传递到视图的最底层,即使在中间某些视图会响应这个事件( 这个视图也不会去消费这个事件),     仍然是会传递到底层(底层不响应该事件),然后再由底层回传到顶层,在传回顶层的过程中 ,   原先会响应该事件的视图才会去消费这个事件 例如在左图中                                 A                               

Android的Touch事件分发机制简单探析

前言 Android中关于触摸事件的分发传递是一个很值得研究的东西.曾不见你引入了一个ListView的滑动功能,ListView就不听你手指的指唤来滚动了:也不知道为啥Button设置了onClick和onTouch,其中谁会先响应:或许你会问onTouch和onTouchEvent有什么区别,又该如何使用?这里一切的一切,只要你了解了事件分发机制,你会发现,解释这都不是事儿! 相关Touch事件的方法 1.public boolean dispatchTouchEvent(MotionEve

JavaScript-4.5 事件大全,事件监听---ShinePans

绑定事件 <input type="bubtton" onclick="javascript:alert('I am clicked');"> 处理事件 <script language="JavaScript" for="对象" event="事件"> ... (事件处理代码) ... </script> 鼠标事件举例 <script language="

心得 : 面向对象和面向过程的区别

面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思想.就是分析出解决问题所需的步骤,然后用函数把这写步骤实现,并按顺序调用. "面向对象"是以"对象"为中心的编程思想. 简单的举个例子:汽车发动.汽车到站.汽车启动是一个事件,汽车到站是另一个事件,面向过程编程的过程中我们关心的是事件,而不是汽车本身.针对上述两个事件,

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

iOS中的事件传递和响应者链条 本文转自:http://www.linuxidc.com/Linux/2015-08/121270.htm 首先我们来看看ios中事件的产生和传递过程 1.发生触摸事件后,系统会将事件加入到一个由UIApplication管理的队列事件中来 2.UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常会发发送事件给应用程序的主窗口 3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件 4.找到合适的视图控件后,就会调用视图