Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

didSelectRowAtIndexPath is in conflict with Tap Gesture Recognizer

I've set a Tap Gesture Recognizer in my ViewController via the Storyboard (so all the tap in the view, will hide the keyboard if this one is showed)

The thing is that now, I have add a TableView in this View, and when I clic on a cell, the methode set with the Tap Gesture Recognizer is call, not didSelectRowAtIndexPath.

The "funny" thing, is that if I stay on the cell for 2seconds or more, the delegate didSelectRowAtIndexPath is called, not the TapGestureRecognizer methode.

Could you guys explain what happen here ? where and why am I wrong ?

like image 927
Vincent 'On-arap' Burel Avatar asked Jan 22 '16 10:01

Vincent 'On-arap' Burel


1 Answers

Your UITapGestureRecognizer probably cancels the touch event when successfully recognizing a touch.

Try setting

tapGestureRecognizer.cancelsTouchesInView = NO;

For a more thorough read on this topic, have a look an the conceptual docs on gesture recognition.

like image 93
Tobi Nary Avatar answered Nov 11 '22 06:11

Tobi Nary