2011-07-01 16 views
4

私のアプリでは、画面の左側をタップしてスピードを上げ、右側をスワイプしてジョイスティックを操作させたいと思っています。しかし、ユーザーが左側を保持し続ける場合、ジョイスティックは正しく機能しません。uitouchesをキャンセルするには?

私はtouchesBegan、touchesMovedなどを使用しています。最初のタッチから情報を取り消して別にジョイスティックを実行する方法はありますか?

すでに試しました[self touchesCancelled: touches withEvent: event];他の方法はありますか?

答えて

3

Cocoa Touchフレームワークはマルチタッチ対応です。したがって、セカンドタッチで作業するために最初のタッチをキャンセルする必要はありません。タッチを列挙して、タッチデリゲートのジョイスティックに必要なものだけを使用してください。

NSArray *allTouches = [ touches allObjects ]; 
int  numTouches = [ allTouches count ]; 
for (int i=0; i<numTouches; i++) { 
    UITouch *theTouch = [ allTouches objectAtIndex:i ]; 
    if (theTouch != leftSideHoldTouch) { 
     // maybe it's a joystick touch, so handle it here 
    } 
} 
関連する問題