2010-03-01 4 views
0

터치 입력 작업을하기 위해 MoveMe 샘플을 사용하기 시작했습니다.iPhone 터치 입력을 안정적으로 얻을 수 있습니까?

는 기본적으로, 나는 나의 터치 입력을 얻기 위해이 두 콜백 함수를 정의 : 이것은 잘 작동

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

    for (UITouch* touch in touches) 
    { 
     printf("touch down"); 
    } 
} 



- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    for (UITouch* touch in touches) 
    { 
     printf("touch up"); 
    } 
} 

, 당신이 한 번에 화면에 5 개 이상의 터치를 할 때까지. 제대로 작동하지 않으면 화면에 5 번 이상 터치하면 "터치 다운"메시지가 표시되지 않습니다. 더 나쁜 것은 화면에서 모든 손가락을 제거 할 때까지 모든 "터치 업"메시지를 안정적으로 얻지 못한다는 것입니다.

6 손가락으로 터치 한 다음 3을 놓은 다음 다른 3 손가락으로 다시 터치하면 "터치 다운"이 표시되지만 릴리스하면 가끔 터치합니다 하지마.

이것은 터치를 추적하는 것을 거의 불가능하게 만들고, 터치 관리자에게 전달되면 터치가 영구히 멈추는 결과를 낳습니다.

터치 입력을 얻는 데 사용할 수있는 API가 더 있습니까? 화면이 현재 터치되었는지 여부를 안정적으로 확인하기 위해 호출 할 수있는 기능이 최소한 있습니까? 그런 식으로 모든 손가락이 풀려 나면 관리자를 재설정 할 수 있습니다.

편집 :

오른쪽에는 뭔가 빠져 있어야합니다. 현재 계산기가 콜백으로 할 수없는 일을하기 때문입니다.

한 번에 하나의 터치 만 허용하며, 화면에 둘 이상의 터치가있는 경우 모든 터치를 취소하지만 "둘 이상의"터치가 있다는 것을 알기 위해 추적해야합니다. 화면.

화면을 터치하면 화면에 다른 터치를 추가하면 버튼이 열리고 둘 이상의 터치는 허용되지 않습니다. 이제 화면에 손가락을 4 개 더 추가하면 총 6 개 화면이 끊어지며 6 개의 손가락을 놓으면 앱이 "위로"콜백을받지 못합니다. 그런데 내가 그들 모두를 풀어주고 다시 만질 때, 버튼이 우울해 지므로, 나는 그 모든 손가락을 놓았다는 것을 알고 있습니다 !! 방법??

답변

2

문제는 iPhone과 iPod touch가 동시에 최대 5 번 터치 만 지원한다는 것입니다 (손가락이 화면에 계속 닿아 있음). 이것은 아마도 하드웨어 제한입니다.
(St3fan 이미 말했듯이.)

가있는 경우 동시에 5 개 이상을 모든 접촉을 취소 할 시스템 : touchesCancelled:withEvent: (이것은 일부 접촉이 touchesEnded 전화로 이상한 행동의 원인을 아마도 : withEvent :)

터치가 끝났는지 알고 싶다면 들어 올려 졌기 때문에 UITouch의 위상 속성을 확인하십시오.

+0

감사! 저건 완벽 해. 분명히하기 위해, 제 문제는 절대로 5 번 이상을 처리하고 싶지 않았습니다. 사용자가 화면을 5 번 이상 터치 한 경우 (제어 할 수없는 것 ...) 시스템에 문제가 발생하지 않고 중단 될 수있었습니다. 필자는 터치 관리자가 터치 업과 취소의 차이점을 사용자에게 알려줘야한다고 생각했습니다. 따라서이 점이 의미가 있습니다. 이것은 샘플 코드를 기본으로 사용할 때 발생합니다 ... – matt

1

iPhone 및 iPod이 현재 지원하는 최대 접촉 수는 5이므로 작동이 멈 춥니 다. 주위에 나는 두려워.

+0

흠, 그렇다면 사람들이 화면에 달라 붙은 터치를 남기고 있기 때문에 버튼을 붙이거나 물건을 쥐고 다니는 방법은 무엇입니까? 관리자가 작동하는 방식은 관리자에게 "시작"이벤트가 발생하면 관리자에게 터치를 추가 한 다음 종료 이벤트가 발생하면 관리자에게 삭제합니다. 일부 종료 이벤트가 발생하지 않기 때문에이 화면이 화면에 달라 붙습니다.? – matt

+0

여기에 문서가 있습니까? – Tim

+0

나는 이것이 단지 애처 롭다는 것을 의미한다! 화면이 전혀 건드리지는 않았는지 알 수있는 최소한의 절대적인 방법이 있어야합니다! 그 방법으로 최소한 터치 관리자를 지울 수있었습니다! – matt

관련 문제