首页 理论教育 如何处理事件——优化事件处理方法

如何处理事件——优化事件处理方法

时间:2023-06-23 理论教育 版权反馈
【摘要】:当触摸序列被诸如电话呼入这样的系统事件取消时,会调用上述方法。每个触摸事件处理的方法都关联两个参数,第一个参数是一个UITouch实例的集合,表示给定阶段中新的或者发生变化的触摸动作;第二个参数是一个UIEvent实例,表示这个特定的事件。除了处理事件之外,UIKit响应者还负责将未处理事件转发到应用程序的其他部分。

如何处理事件——优化事件处理方法

响应者,即UIResponder的实例构成了应用程序的事件处理主要部分。读者在实践中需要通过覆写响应者提供的方法进行事件处理,例如要处理触摸事件时,响应者的子类应实现:

当一根或多根手指触碰屏幕时,会调用上述方法。

当一根或多根手指触碰屏幕时,会调用上述方法。

当一根或多根手指在屏幕上移动时,会调用上述方法。

当一根或多根手指在屏幕上移动时,会调用上述方法。

当一根或多根手指离开屏幕时,会调用上述方法。

当一根或多根手指离开屏幕时,会调用上述方法。

当触摸序列被诸如电话呼入这样的系统事件取消时,会调用上述方法。

上面这些方法都和特定的触摸阶段(如UITouchPhaseBegan)相关联,该信息会存在于UITouch实例的phase属性声明中。每个触摸事件处理的方法都关联两个参数,第一个参数是一个UITouch实例的集合,表示给定阶段中新的或者发生变化的触摸动作;第二个参数是一个UIEvent实例,表示这个特定的事件。通过调用这个UIEvent实例的allTouches方法可以获取与之相关联的所有UITouch实例,或者发生在特定的视图或窗口上的UITouch实例的子集。其中的某些UITouch实例在上一个阶段就已经存在了,可能发生了位置或者状态的变化。

UITouch类中有一个方法如下:

当触摸序列被诸如电话呼入这样的系统事件取消时,会调用上述方法。(www.xing528.com)

上面这些方法都和特定的触摸阶段(如UITouchPhaseBegan)相关联,该信息会存在于UITouch实例的phase属性声明中。每个触摸事件处理的方法都关联两个参数,第一个参数是一个UITouch实例的集合,表示给定阶段中新的或者发生变化的触摸动作;第二个参数是一个UIEvent实例,表示这个特定的事件。通过调用这个UIEvent实例的allTouches方法可以获取与之相关联的所有UITouch实例,或者发生在特定的视图或窗口上的UITouch实例的子集。其中的某些UITouch实例在上一个阶段就已经存在了,可能发生了位置或者状态的变化。

UITouch类中有一个方法如下:

如果将视图作为参数传入,会给出触摸动作在响应者视图坐标系中的位置。由于在调用时,UITouch实例可能已从一个视图转发到另一个视图,所以此方法需要将执行的触摸位置指定到某个视图的坐标系中。

另外,还有一个与之平行的方法如下:

如果将视图作为参数传入,会给出触摸动作在响应者视图坐标系中的位置。由于在调用时,UITouch实例可能已从一个视图转发到另一个视图,所以此方法需要将执行的触摸位置指定到某个视图的坐标系中。

另外,还有一个与之平行的方法如下:

可以获取触摸动作在某个视图下之前的一次位置。UITouch实例中还有可以给出发生触碰的次数的属性tapCount、给出触摸对象的创建或最后一次变化发生的时间的属性timeStamp以及给出触摸所处的阶段的属性phase。

在触摸的情况下,响应者通过UIKit提供的这些方法和属性来跟踪这些触摸的变化并适当地更新应用程序的界面。除了处理事件之外,UIKit响应者还负责将未处理事件转发到应用程序的其他部分。UIKit动态管理着响应者链,使用预定义的规则来确定接下来应该接收事件的对象。

可以获取触摸动作在某个视图下之前的一次位置。UITouch实例中还有可以给出发生触碰的次数的属性tapCount、给出触摸对象的创建或最后一次变化发生的时间的属性timeStamp以及给出触摸所处的阶段的属性phase。

在触摸的情况下,响应者通过UIKit提供的这些方法和属性来跟踪这些触摸的变化并适当地更新应用程序的界面。除了处理事件之外,UIKit响应者还负责将未处理事件转发到应用程序的其他部分。UIKit动态管理着响应者链,使用预定义的规则来确定接下来应该接收事件的对象。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈