1

第一个 UIApplication 还是 Control?

在我认为第一个是 UIApplication 之前。但现在我想也许第一个是 Control 。

依据如下:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIControl_Class/Reference/Reference.html#//apple_ref/occ/cl/UIControl

sendAction:to:forEvent:响应给定事件,将操作消息转发给应用程序对象,以便分派到目标。

这使我相信 UIControl 在 application 之前首先获得 Control Event。

4

1 回答 1

2

UIEvent 类和 UIControlEvent 常量不是一回事。事件对象封装有关触摸序列的信息,控件事件是 UIControl 对其范围内的特定触摸序列的解释。

顺序是:

  1. 操作系统接收 UIEvent 对象并将其传递给 UIApplication。
  2. [UIApplication sendEvent:]将事件传递到关键窗口
  3. [UIWindow sendEvent:]将(触摸)事件传递到命中测试视图
  4. [UIView touches...]事件处理方法调用

    UIControl 对象解释触摸并确定 UIControlEvent 常量(如果有)

  5. [UIControl sendAction:to:forEvent:]被调用一次或多次

  6. [UIApplication sendAction:to:from:forEvent:]叫做
  7. 对目标执行操作

所以 UIEvent 以 UIApplication 开头,但 UIControlEvent 以 UIControl 开头。

于 2012-07-22T02:46:41.990 回答