UIPinchGestureRecognizer 禁用双指张开
UIPinchGestureRecognizer Disable Pinch Out
我在滚动视图中添加了捏合手势识别器,用它来关闭模态视图控制器。我是这样做的:
UIPinchGestureRecognizer *closePinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(closeGallery)];
[galleryScrollView addGestureRecognizer:closePinch];
虽然它被添加到一个滚动视图中,但我实际上并没有使用它来缩放只是为了关闭视图。因此,我不需要捏合手势,因为它表示放大。
有没有办法轻松禁用手势识别器的张开部分并保持捏合不受影响?
根据 Crazyrems 的回答,以下委托方法完全符合我的需要:
- (BOOL)gestureRecognizerShouldBegin:(UIPinchGestureRecognizer *)gestureRecognizer
{
// Negative velocity indicates pinch out
if (gestureRecognizer.velocity < 0) {
return YES; // <- Register touch event
} else {
return NO; // <- Do not register touch event
}
}
您应该在 UIGestureRecognizerDelegate
中实施 -gestureRecognizerShouldBegin:
recognizer传入的参数中有velocity
属性,可以判断是捏合还是捏合,return YES
or [=结果是 14=]。
我在滚动视图中添加了捏合手势识别器,用它来关闭模态视图控制器。我是这样做的:
UIPinchGestureRecognizer *closePinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(closeGallery)];
[galleryScrollView addGestureRecognizer:closePinch];
虽然它被添加到一个滚动视图中,但我实际上并没有使用它来缩放只是为了关闭视图。因此,我不需要捏合手势,因为它表示放大。
有没有办法轻松禁用手势识别器的张开部分并保持捏合不受影响?
根据 Crazyrems 的回答,以下委托方法完全符合我的需要:
- (BOOL)gestureRecognizerShouldBegin:(UIPinchGestureRecognizer *)gestureRecognizer
{
// Negative velocity indicates pinch out
if (gestureRecognizer.velocity < 0) {
return YES; // <- Register touch event
} else {
return NO; // <- Do not register touch event
}
}
您应该在 UIGestureRecognizerDelegate
-gestureRecognizerShouldBegin:
recognizer传入的参数中有velocity
属性,可以判断是捏合还是捏合,return YES
or [=结果是 14=]。