作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 ScrollView 中添加了一个捏合手势识别器,用它来关闭模态视图 Controller 。我是这样做的:
UIPinchGestureRecognizer *closePinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(closeGallery)];
[galleryScrollView addGestureRecognizer:closePinch];
虽然它被添加到一个 scrollView 中,但我实际上并没有使用它来缩放只是为了关闭 View 。因此,我不需要双指张开手势,因为它表示放大。
有没有一种方法可以轻松禁用手势识别器的张开部分并保持捏合不受影响?
根据 Crazyrems 的回答,以下委托(delegate)方法完全符合我的需要:
- (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
}
}
最佳答案
你应该实现 -gestureRecognizerShouldBegin:
在你的UIGestureRecognizerDelegate
有一个 velocity
传入参数的识别器中的属性,因此您可以检查它是捏合还是捏合,并返回 YES
或 NO
结果。
关于ios - UIPinchGestureRecognizer 禁用双指张开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798873/
我是一名优秀的程序员,十分优秀!