2010-10-15 113 views
0

最近我用這個代碼來處理拖動觸摸:2觸摸問題

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

,但我當用戶觸摸2個按鈕在同一時間問題僅一個叫如何解決這一問題?

+0

不要忘了實現touchCanceled :. – Eiko 2010-10-15 19:38:13

回答

0

感謝所有的答案,但在我的代碼,我用UITouch *t =[..];它是確定的,如果我把它放在一個for循環(UITouch *t in ... )因此當用戶觸摸2個手指同時叫了兩聲方法

0

的UIGestureRecognizer很容易實現,而且容易出錯有關觸摸事件處理更少。 按下第二個按鈕後,可以在touchesBegan,touchesMoved或touchesEnded上輸入按下事件,您必須在這些位置檢查[touches count]。但是,如果您想處理拖動行爲,touchesMoved是檢查兩次觸摸或只觸摸一次的最佳位置。正如Eiko所說的,你應該實現被觸摸取消。 觸摸事件的序列可以是

  • touchedBegan - > touchedMoved - > touchedEnded - > touchedCanceled,
  • 或touchedBegan - > touchedMoved - > touchedCanceled(無touchedEnded)。

如果沒有移動,那麼touchMoved將不會被調用。這意味着觸摸事件的順序將爲

  • touchedBegan - > touchedEnded - > touchedCanceled。
  • or touchedBegan - > touchCanceled。