2010-11-26 5 views
2

Einfach nur neugierig. Wenn der Benutzer den Bildschirm in einer iPhone-App berührt, wie behandelt das Betriebssystem das Berührungsereignis? Ist der aktuelle Codeblock (Funktion/Methode) Finish, und dann wird das Touch-Ereignis behandelt? Oder unterbricht das Betriebssystem den Code, der ausgeführt wird, um das Touch-Ereignis zu verarbeiten?iOS Touch-Ereignis

Danke!

Sunny

Antwort

4

Touches auf dem Bildschirm bewirken, dass die OS Touch-Ereignisse für Ihre Anwendung generieren. Alle Ereignisse werden in dem Haupt-Thread (dem gleichen Thread, der Code ausgeführt wird) behandelt, die wie eine Schleife durchgeführt wird. Das Betriebssystem unterbricht Ihren Code nicht, um ein Ereignis zu behandeln. Alle Ereignisse werden beim nächsten Durchlauf der Ereignisschleife behandelt.

0

Wenn die aktuelle Funktion/Methode wird in dem Haupt-Thread ausgeführt wird, dann ist jeder Berührungsereignishandler wird erst nach der aktuellen Routine zurück (zur Laufschleife) bezeichnet werden. Wenn die aktuelle Funktion/Methode ist nicht im Haupt-UI-Thread ausgeführt wird, dann könnte der Code unterbrochen werden, um die Touch-Event-Handler auszuführen.

Auf aktuellen Geräten scheinen Touch-Ereignisse auf die 60-Hz-Frame-Rate, etwa alle 16 ms, zu quantisieren, so dass eine physische Berührung möglicherweise nicht als Ereignis gepostet wird und kein Handler dies tut aufgerufen werden, bis das Ereignis veröffentlicht wurde.