使UITapGestureRecognizer不使用与视图无关的水龙头

时间:2017-02-18 21:15:05

标签: ios uiview uigesturerecognizer uitapgesturerecognizer

我在视图上设置了UITapGestureRecognizer。只有视图中的特定区域才需要触发视图的行为。我这样做是通过检查触摸的确切位置是否在视图中的实际可操作区域。如果触摸不在这些区域,我希望点击在视图层次结构中向上传播。

我尝试使用手势委托:shouldReceive touch,并在那里测试触摸是否与视图相关,但我无法在那里执行操作,因为它触摸时触发,而不是点击。我可以在shouldReceive中执行相关性测试,并且只有在调用了tap操作处理程序时执行操作,但我发现它很尴尬。是否有更优雅的方式告诉iOS我的手势识别器决定不使用水龙头?

1 个答案:

答案 0 :(得分:0)

根据我们的讨论,您可以使用if-else check in attributionString touch handler&的结合评估gestureRecognizer:shouldReceiveTouch:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

    if ([touch.view isDescendantOfView:interestingView]) {
        return NO;
    }
    return YES;       
}

希望这会有所帮助。
如果没有,那么我再说一遍,你可以更好地分享一些相关的代码。