2011-07-01 7 views
4

내 앱에서 사용자가 화면의 왼쪽을 탭하여 속도를 높이고 오른쪽을 스 와이프하여 조이스틱을 작동하게하고 싶습니다. 그러나 사용자가 왼쪽을 계속 누르고 있으면 조이스틱이 제대로 작동하지 않습니다.uitouches를 취소하는 방법?

저는 touchesBegan, touchesMoved 등을 사용하고 있습니다. 첫 번째 터치에서 정보를 취소하고 조이스틱을 별도로 수행 할 수있는 방법이 있습니까?

나는 이미 다른 방법으로 [self touchesCancelled: touches withEvent: event];을 시도 했습니까?

답변

3

코코아 터치 프레임 워크는 멀티 터치를 인식합니다. 따라서 두 번째 터치로 작업 할 첫 번째 터치를 취소 할 필요가 없습니다. 접촉을 열거하고 터치 위임자의 조이스틱에 사용할 터치 만 사용하십시오.

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 
    } 
}