我正在尝试禁用gestureRecognizerShouldBegin向下滑动

这是我的代码:

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
    CGPoint translation = [gestureRecognizer translationInView:self.scrollView];
    // Check for horizontal and up gesture
    if (fabsf(translation.y) > fabsf(translation.x) && fabsf(translation.y) > 0) {
        return YES;
    }
    return NO;
}

水平线已正确锁定,但不能向下滑动。你知道我应该怎么写这个条件吗?

最佳答案

正如大家在评论中建议的那样-,这里的解决方案:

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
    CGPoint translation = [gestureRecognizer translationInView:self.scrollView];
    // Check for horizontal and Up gesture
    if (fabsf(translation.y) > fabsf(translation.x) && translation.y < 0 )
    {
        return YES;
    }
    return NO;
}

然后我想到了UX方面可能更好的东西:

我直接在PanGestureRecognizer中添加了:
if (translation.y > 0) {
            panedView.center = CGPointMake(YOUR_CENTER.x, YOU_CENTER.y + translation.y /10);
        }

它创建的翻译非常小,使整个动画对用户来说更加流畅。

谢谢!

10-07 19:54
查看更多