iOS 阻止向下滑动
iOS Block swipe down
我正在尝试使用 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;
}
然后我想出了一些在用户体验方面可能更好的东西:
直接在PanGestureRecognizer
我加了:
if (translation.y > 0) {
panedView.center = CGPointMake(YOUR_CENTER.x, YOU_CENTER.y + translation.y /10);
}
它创建了一个非常小的翻译,使整个动画对用户来说更加流畅。
谢谢!
我正在尝试使用 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;
}
然后我想出了一些在用户体验方面可能更好的东西:
直接在PanGestureRecognizer
我加了:
if (translation.y > 0) {
panedView.center = CGPointMake(YOUR_CENTER.x, YOU_CENTER.y + translation.y /10);
}
它创建了一个非常小的翻译,使整个动画对用户来说更加流畅。
谢谢!