2010-02-25 32 views
3

我使用TouchesBegan TouchesMoved與多點觸摸。TouchesBegan和TouchesEnded與多點觸發問題

我有一個本質上是一個按鈕的手動實現。

我對TouchesBegan的界限進行測試,將按鈕設置爲關閉,對於TouchesEnded來重置它。

問題是,如果用戶在提起之前將手指移出按鈕的邊界,那麼TouchesEnded在觸摸開始的按鈕邊界之外。

我不能重置touchesended上的所有內容,因爲用戶可能仍然用另一個手指按住另一個按鈕。

對此有何建議? UIButton必須以某種方式做類似的事情。

+0

什麼意思是重置所有東西? 您的按鈕類是否保持觸摸狀態{isTouched,isReleased}或其他「控制器」是否保持觸摸狀態? – 2010-02-25 00:35:41

+0

@AZ我有一個標誌,可以追蹤我的「按鈕」是否關閉。我可以使用TouchesEnded重置所有的標誌(在所有按鈕上),但人們無法按住一個按鈕,同時釋放另一個 – PeanutPower 2010-02-25 10:05:39

回答

3

您需要觀看touchesMoved並在觸摸移出界限時「停用」按鈕,並在觸摸返回時「重新激活」按鈕。請參閱Handling a Complex Multi-Touch Sequences以獲取有關如何觀察突變的說明多點觸摸序列(說「哪個手指是那個的奇特方式?」)

+0

啊,謝謝這就是我一直在尋找的東西。所以他們用字典來保存觸摸信息。 – PeanutPower 2010-02-25 10:07:56

+2

我堅持要求Apple不要使用NSDictionary,而是使用CFDictionaryRef。第三方維護該錯誤代碼。 – 2011-09-08 14:39:47

相關問題