터치 입력 작업을하기 위해 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 개의 손가락을 놓으면 앱이 "위로"콜백을받지 못합니다. 그런데 내가 그들 모두를 풀어주고 다시 만질 때, 버튼이 우울해 지므로, 나는 그 모든 손가락을 놓았다는 것을 알고 있습니다 !! 방법??
감사! 저건 완벽 해. 분명히하기 위해, 제 문제는 절대로 5 번 이상을 처리하고 싶지 않았습니다. 사용자가 화면을 5 번 이상 터치 한 경우 (제어 할 수없는 것 ...) 시스템에 문제가 발생하지 않고 중단 될 수있었습니다. 필자는 터치 관리자가 터치 업과 취소의 차이점을 사용자에게 알려줘야한다고 생각했습니다. 따라서이 점이 의미가 있습니다. 이것은 샘플 코드를 기본으로 사용할 때 발생합니다 ... – matt