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が最初にコントロールイベントを取得することを信頼するようになりました。

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:]1回以上呼び出される

  6. [UIApplication sendAction:to:from:forEvent:]と呼ばれる
  7. アクションはターゲットに対して実行されます

したがって、UIEvent は UIApplication で始まりますが、UIControlEvent は UIControl で始まります。

于 2012-07-22T02:46:41.990 に答える