UIView获取轻击和滑动手势,但将其设置为忽略捏合缩放手势

时间:2016-12-05 09:50:59

标签: ios uiview uiscrollview uigesturerecognizer uipinchgesturerecognizer

我有UIScrollView,我在其上添加了UIView,我向UIView添加了手势识别器。我添加了点击手势和滑动手势到UIView,它工作正常。但是当用户使用捏时,我想被UIView忽略,而UIScrollView应该对此手势做出反应。我该怎么做?我无论如何都不能这样做。我知道有测试方法,但我认为它不能帮助我。

编辑:我在顶部有UIView,现在可以捕获(捕获)所有手势。对于轻击和滑动手势,这就是我想要的。但我希望捏手势会被顶部UIView忽略,并被UIScrollView下方的UIView抓住。我试图寻找解决方案,但我找不到任何解决方案。

2 个答案:

答案 0 :(得分:0)

您是否尝试过以下代码禁用任何实例的用户互动:

scrollViewObject.userInteractionEnabled = NO;

应该有所帮助。

答案 1 :(得分:0)

如果您的UIView位于顶部并且正在捕获所有手势,请设置委托方法gestureRecognizerShouldBegin并让其检测手势类型。如果是pinch,则在UIScrollView

上调用方法
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
    if gestureRecognizer.isKind(of: UIPinchGestureRecognizer.self) {
        scrollView.someFunction()
    }
    return true
}

如果愿意,您也可以将捏合手势的实例传递给您的滚动视图功能。