2010-11-26 38 views
2

只是好奇。當用戶在iPhone應用程序中觸摸屏幕時,操作系統如何處理觸摸事件?當前的代碼塊(函數/方法)是否完成,然後處理觸摸事件?或者操作系統是否中斷處理觸摸事件的任何代碼?iOS touch事件

謝謝!

陽光

回答

4

倒是屏幕導致操作系統爲您的應用程序的觸摸事件。所有事件都在主線程(運行你的代碼的同一線程)中處理,它像循環一樣實現。操作系統不會中斷您的代碼來處理事件;所有事件都會在事件循環的下一個階段處理。

0

如果當前函數/方法正在主線程中運行,則在當前例程返回(到運行循環)之前,不會調用任何觸摸事件處理程序。如果當前的函數/方法沒有在主UI線程中運行,那麼代碼可能會被中斷以運行觸摸事件處理程序。

在目前的設備上,觸摸事件似乎被量化爲60赫茲的幀速率,大約每16毫秒,所以物理觸摸可能不會作爲事件發佈,直到可能已經過去,並且沒有處理程序會直到事件發佈後纔會被調用。