2010-05-03 5 views

답변

20

올바른 길을 가고 있습니다. touchesBegan에서는 사용자가 처음 화면에 닿는 위치를 저장해야합니다.

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

    UITouch *touch = [touches anyObject]; 
    self.startPosition = [touch locationInView:self]; 
} 

비슷한 코드를 입력하면 끝자리가 결정됩니다. 두 위치를 비교하여 이동 방향을 결정할 수 있습니다. x 좌표가 특정 공차를 벗어나면 왼쪽 또는 오른쪽으로 쓸어 넘깁니다.

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

    UITouch *touch = [touches anyObject]; 
    CGPoint endPosition = [touch locationInView:self]; 

    if (startPosition.x < endPosition.x) { 
     // Right swipe 
    } else { 
     // Left swipe 
    } 
} 

사용자가 아직 화면을 터치하는 동안 스 와이프를 감지하고 추적하고 싶지 않으면 touchesMoved가 필요하지 않습니다. 또한 사용자가 스 와이프를 수행하기로 결정하기 전에 최소 거리를 이동했는지 테스트 해 볼 가치가 있습니다.

+0

quixoto이 바로 당신의 문제에 대한이 더 나은 솔루션은 더 나은 생각합니다. – fyasar

+0

UITableview 용으로 사용할 수 있습니까? – Mashhadi

+0

꽤 오래된 버전입니다.'UISwipeGestureRecognizer'가 훨씬 깔끔합니다 (iOS 9) – Cbas

15

iPhone OS 3.2 이상 (모든 iPad 또는 업데이트 된 iPhone)을 타겟팅하려는 경우 개체를 사용하십시오. 이것은 사소한 일로 사소한 일입니다.

36

당신은

의 UIView에 출근의 터치와 방향을 감지하거나 어디서든 아이폰 SDK의 할 UISwipeGestureRecognizer 개체를 사용합니다.

UISwipeGestureRecognizer *rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)]; 
rightRecognizer.direction = UISwipeGestureRecognizerDirectionRight; 
[rightRecognizer setNumberOfTouchesRequired:1]; 

//add the your gestureRecognizer , where to detect the touch.. 
[view1 addGestureRecognizer:rightRecognizer]; 
[rightRecognizer release]; 

UISwipeGestureRecognizer *leftRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftSwipeHandle:)]; 
leftRecognizer.direction = UISwipeGestureRecognizerDirectionLeft; 
[leftRecognizer setNumberOfTouchesRequired:1]; 

[view1 addGestureRecognizer:leftRecognizer]; 
[leftRecognizer release]; 

- (void)rightSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer 
{ 
    NSLog(@"rightSwipeHandle"); 
} 

- (void)leftSwipeHandle:(UISwipeGestureRecognizer*)gestureRecognizer 
{ 
NSLog(@"leftSwipeHandle"); 
} 

나는 GestureRecognizer 내장

+0

공유 해 주셔서 감사합니다. – Signcodeindie

관련 문제