UIView上的UITapGestureRecognizer及其子视图在点击子视图时一起响应

Vad*_*Vad 4 iphone objective-c uiview uigesturerecognizer ios

UITapGestureRecognizer应用于两者UIImageView及其子视图(UITextView).但是,当我点击子视图时,接收器变为子视图及其父视图(即UIImageView+ UITextView).但它应该只是subview,因为那是我点击的那个.我假设嵌套手势会先做出反应,但显然父母会接到第一个敲击然后它会转到孩子身上.

因此,针对各种场景存在不同的解决方案(与我的不同,而是滚动视图内的按钮冲突).如何在没有可能的子类化和iOS 6+支持的情况下轻松解决我的问题?我试图拖延就开始接触了UIGestureRecognizerUIImageView,我试图设置cancelsTouchesInViewNO-所有没有运气.

Sah*_*jan 10

请尝试以下代码:

使< UIGestureRecognizerDelegate> 符合你的班级.

设置yourGesture.delegate = self;

然后添加此委托方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    // return YES (the default) to allow the gesture recognizer to examine the touch object, NO to prevent the gesture recognizer from seeing this touch object.
    if([touch.view isKindOfClass: [UITextView class]] == YES)] {
        return YES;
    }
    else {
        return NO;
    }
}
Run Code Online (Sandbox Code Playgroud)

希望它能解决你的问题.享受编码.. !!!!