为什么只有一个UIEvent被创建用于许多单独的触摸?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么只有一个UIEvent被创建用于许多单独的触摸?相关的知识,希望对你有一定的参考价值。

我正在学习ios的触摸事件机制。

从文档中我了解到,当第一次触摸发生时会创建一个UIEvent对象,它将一直存活到最后一次触摸,并且它将包含在该时段中创建的所有UITouch对象。

但是在我的测试中,我发现在应用程序的整个生命周期中只在视图中创建了一个UIEvent对象,并且它包含的UITouch对象的数量取决于手指触摸的数量。

如果用一根手指触摸,将只创建一个UITouch对象,并且UITouch对象将在不同阶段更新。

我的意思是我的测试中的表示与文档的描述不同:当发生许多不同的触摸时,只有一个UIEvent对象。

这是为什么?我在哪里误解了什么吗?

答案

事件是程序检测到的可由程序处理的动作或事件。该事件可以是触摸事件,动作事件或远程控制事件。简单地说UITouch也是UIEvent的一部分。 UITouch可以生成由程序处理的事件。程序通过事件感知触摸。

有关更多详细信息,请访问以下链接:http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009541

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIEvent_Class/Reference/Reference.html

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITouch_Class/Reference/Reference.html

http://en.wikipedia.org/wiki/Event_%28computing%29

我希望它会有所帮助。

另一答案

我遇到了同样的问题。我真的很困惑,具有相同内存地址的UIEvent对象一次又一次出现 - 。根据我的理解,每次多触摸序列发生时,都会创建一个UIEvent来表示它。我倾向于这样思考:每次只有一个多触摸序列发生,所以在应用程序的整个生命周期中只有一个UIEvent对象可以代表所有这些。 ^^

另一答案

以下链接可能对您的查询有用。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITouch_Class/Reference/Reference.html

http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009541

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIEvent_Class/Reference/Reference.html

以上是关于为什么只有一个UIEvent被创建用于许多单独的触摸?的主要内容,如果未能解决你的问题,请参考以下文章

使用Perl

为测试创建一个单独的包

什么被调用而不是 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 当辅助功能(画外音打开)

在按钮 B 的触地期间触发按钮 A 上的触地

如果用户属于许多组织,则单独的角色/权限

立即显示启动画面