아래 코드를 사용하여 스 와이프 위치를 얻으려고 시도하지만 화면에서 스 와이프 한 위치와 상관없이 동일한 위치를 반환합니다.스 와이프 제스처의 위치를 얻는 방법
CODE :
-(void) recognizeTapGesture : (UITapGestureRecognizer*)sender {
CGPoint event;
event = [sender locationInView: nil ];
NSLog(@"Tap Detected (%f,%f) %lu",event.x,event.y,(unsigned long)sender.numberOfTouches);
}
-(void) recognizeLeftSwipeGesture : (UISwipeGestureRecognizer*)sender {
CGPoint event;
event = [sender locationInView: nil ];
NSLog(@"Left Swipe Detected (%f,%f) %lu",event.x,event.y,(unsigned long)sender.numberOfTouches);
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
_TapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(recognizeTapGesture:)];
_LeftswipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget: self action:@selector(recognizeLeftSwipeGesture:) ];
_LeftswipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;
_LeftswipeGesture.cancelsTouchesInView = NO;
_TapGesture.cancelsTouchesInView = NO;
[[self window] addGestureRecognizer:_LeftswipeGesture];
[[self window] addGestureRecognizer:_TapGesture];
return YES;
}
출력 :
Tap Detected (286.500000,460.500000) 1
Left Swipe Detected (0.000000,0.000000) 1
가 슬쩍의 위치를 찾기 위해,이 코드 충분하다. 객관적으로 스 와이프의 위치를 찾는 방법을 알고 싶습니다.-c. 내가 누락 된 것이 있습니까? 터치 횟수가 항상 1 인 이유는 무엇입니까? 최소 터치 횟수를 이상으로 설정하면 스 와이프가 감지되지 않습니다.
Tap Gesture에 대해 구현 한 코드를 표시하십시오. –
@ Mr.UB, 나는 완전한 코드를 넣었다. 위 코드는 스 와이프 제스처의 위치를 파악하기에 충분합니다. ** touchuchesBegan, touchesEnded 등을 처리하지 않았습니다. ** 또한 터치의 수는 항상 하나입니까? ** numberoftouchesrequired **를 2로 변경하면 감지되지 않습니다. –
'event = [발신자 locationInView : nil];을'event = [발신자 locationInView : self.view];로 변경하고 어떤 일이 일어나는 지 봅니다. –