2010-11-26 4 views
2

好奇心が強い。ユーザーがiPhoneアプリケーションで画面にタッチすると、OSはどのようにタッチイベントを処理しますか?現在のコードブロック(関数/メソッド)が終了してから、touchイベントが処理されますか?あるいは、OSはタッチイベントを処理するために実行中のコードを中断しますか?iOSタッチイベント

ありがとうございます!

サニー

答えて

4

OSに画面のタッチが発生すると、アプリのタッチイベントが生成されます。すべてのイベントはメインスレッド(コードを実行する同じスレッド)で処理され、ループのように実装されます。 OSはイベントを処理するためにコードを中断しません。すべてのイベントは、イベントループの次のパスで処理されます。

0

現在の関数/メソッドがメインスレッドで実行されている場合、現在のルーチンが(実行ループに)戻るまで、すべてのタッチイベントハンドラは呼び出されません。現在の関数/メソッドがメインのUIスレッドで実行されていない場合は、コードを中断してタッチイベントハンドラを実行することができます。

現在のデバイスでは、タッチイベントは60Hzのフレームレート(約16mSec)に量子化されているように見えるため、物理タッチはその時間まで経過していない可能性があります。イベントが投稿されるまで呼び出されます。

関連する問題