UITapGestureRecognizer on UIView and Its Subview Respond Together When Subview Is Tapped

前端 未结 3 991
一生所求
一生所求 2021-01-13 05:15

UITapGestureRecognizer is applied to both UIImageView and its subview (UITextView). However, when I tap on subview, the receiver becom

相关标签:
3条回答
  • 2021-01-13 05:58

    That's exactly what is it supposed to do. View hierarchy is like a tree structure and its traversal during a touch gesture starts from the root node. It is very likely for your parent view to receive gesture first and then its subviews. The traversal skips the nodes for which

    userInteractionEnabled = NO.

    since, you don't have any code I can't help you to play with this flag. A more general solution is to always set gesture only for your parentView and in the gesture delegates check the coordinates if it belongs to any one of the subview and if yes then call your gesture method for your subview. Not a clean approach but works. !!

    0 讨论(0)
  • 2021-01-13 06:09

    Try the following code:

    conform the <UIGestureRecognizerDelegate> to your class.

    set yourGesture.delegate = self;

    then add this delegate Method:

    - (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;
        }
    }
    

    Hope it will solve your issue. Enjoy Coding..!!!!

    0 讨论(0)
  • 2021-01-13 06:16

    you should implement the UIGestureRecognizer delegate methods and apply the correct policy to the gesture, when multiple gesture are recognized

    0 讨论(0)
提交回复
热议问题