2012-09-03 4 views
2

내 앱에서 위쪽 방향에 대한 내 배경 스크롤러에서 제스처 인식기가 필요합니다. 여기 그것은 iphone 개발 : 제스처 인식 스크롤링이 동시에 가능합니다.

UISwipeGestureRecognizer *Swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)]; 
Swipe.direction = UISwipeGestureRecognizerDirectionUp; 
[backgroundScroller addGestureRecognizer:Swipe]; 

있는 viewDidLoad

아래에있는 내 코드입니다 그리고 그것은 SwipeRecognizer입니다 :

- (void) SwipeRecognizer:(UISwipeGestureRecognizer *)sender { 
    if (sender.direction | UISwipeGestureRecognizerDirectionUp){ 
     NSLog(@" *** SWIPE UP ***"); 
    } 
} 

문제는 내가 스크롤을 활성화하고 동시에 제스처를 포착하지 못할 것입니다. 스크롤을 사용할 수 없다고 말하면 제스처를 인식 할 수 있습니다. 하지만 스크롤과 제스처 인식을 동시에해야합니다. 가능하지 않니?

망가 제스처 인식기에 대한 자체에 대리인을 추가하는 것을 잊지 ...

답변

2
는 UIScrollViews 팬 인식기를

을 차단하지 않습니다하는 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 메서드를 재정의

그리고 그것은 작동합니다. @ death7eater의 코멘트에서 언급했듯이.

이가있는 viewDidLoad입니다 :

+0

답변을 주셔서 감사합니다 그러나 그것은 작동하지 않았다. 스크롤을 사용하도록 설정 한 후에도 제스처 – death7eater

+2

을 잘 인식하지 못하고 'Swipe.delegate = self;'를 추가하여 제대로 작동했습니다. 감사합니다 :) – death7eater

+0

그렇지 않으면 그렇지 않으면 메서드가 호출되지 않습니다 필요합니다;) – lukaswelte

1

나는 그런 내 문제를 해결

UISwipeGestureRecognizer *Swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)]; 
    Swipe.direction = UISwipeGestureRecognizerDirectionUp; 
    [backgroundScroller addGestureRecognizer:Swipe]; 
    Swipe.delegate = self; 

이것은 SwipeRecognizer 방법입니다 :

- (void) SwipeRecognizer:(UISwipeGestureRecognizer *)sender { 
    if (sender.direction | UISwipeGestureRecognizerDirectionUp){ 
     NSLog(@" *** SWIPE UP ***"); 
    } 
} 

그리고 감사 @lukaswelte이 수행 할 수 있습니다 동시에 여러 제스처 :

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
}