2

在我的应用程序中,我需要在我的背景滚动条上有一个向上滑动手势识别器。这是我下面的代码

它在 viewDidLoad

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

它是 SwipeRecognizer:

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

问题是我不能同时启用滚动和捕捉手势。当我说未启用滚动时,我可以识别手势。但我需要同时滚动和手势识别。不可能吗?

4

2 回答 2

2

覆盖gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:不阻塞 UIScrollViews Pan 识别器的方法

它会起作用的……</p>

不要忘记将委托添加到自我以进行手势识别。正如@death7eater 的评论中提到的那样。

于 2012-09-03T13:12:40.227 回答
1

我这样解决了我的问题:

这是针对 viewDidLoad:

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;
}
于 2012-09-03T13:47:26.350 回答