2010-01-21 103 views
0

即使沒有發生任何事件,我正在尋找一種獲取所有當前觸摸的方法。我知道[UIEvent allTouches],但我需要能夠看到「這些都是在屏幕上的觸摸」,即使他們沒有任何改變。它似乎應該是可能的,因爲allTouches可以訪問尚未更新的觸摸,因此手機正在跟蹤它們。在沒有UIEvent的情況下獲取所有觸摸

回答

0

覆蓋touchesBegan和touchesEnded,並將當前點與事件中的緩存點進行比較。

+1

請注意,我目前沒有與之比較的點​​。我只是使用'touchesBegan/Moved/Ended'來維護觸摸位置的緩存,並在必要時提及。 – 2010-01-24 17:42:32

+0

touchesCancelled怎麼樣?另外,touchesEnded並不總是被調用。 – jjxtra 2014-07-22 18:00:43

0

嘗試hitTest:withEvent並用pointInside:withEvent過濾。

+0

hitTest會告訴我一個點在哪個視圖中。我想要一組所有觸摸在屏幕上。除非我誤解了某些東西。 – 2010-01-21 05:24:09

+0

我一般用pointInside來測試,以確定當組件在響應者鏈中挑剔時(例如嵌套滾動視圖,自定義GUI小部件等),用戶觸及最頂層視圖的座標 [UIEvent allTouches]返回一個數組所有觸摸(UITouch)的API都可以提供給你。你想要的是訪問最後一個系統UITouch的內部狀態? 我認爲你能夠做的最好的就是訪問touchesBegan和touchesEnded,並緩存一個UITouch自己比較它們。 – 2010-01-21 14:01:12

+0

是的,我害怕我必須自己做,只是看起來很傻,他們不向你開放。 – 2010-01-21 21:20:49

相關問題