简体   繁体   中英

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 ?

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 .

Better way is don't use didSelectRowAtIndexpath method.

if you have to implement gestures on table view cell then create tap gesture in cellForRowAtIndexpath and using tag identify particular cell click.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM