【问题标题】:Why is only one UIEvent created for many separate touches?为什么只为许多单独的触摸创建一个 UIEvent?
【发布时间】:2013-06-28 03:04:40
【问题描述】:

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

从文档中我了解到UIEvent 对象将在第一次触地时创建,它会一直存在到最后一次触地时,并且它将包含该期间创建的所有UITouch 对象。

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

如果用一根手指触摸,则只会创建一个UITouch 对象,而UITouch 对象会分阶段更新。

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

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

【问题讨论】:

标签: ios cocoa-touch events uitouch uievent


【解决方案1】:

事件是程序检测到的可以由程序处理的动作或事件。事件可以是触摸事件、运动事件或远程控制事件之类的任何事件。 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

我希望它会有所帮助。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      相关资源
      最近更新 更多