我通过Storyboard在我的ViewController中设置了Tap Gesture Recognizer (因此视图中的所有点击,如果显示此键盘,将隐藏键盘)
现在,我已经在这个视图中添加了一个TableView,当我在一个单元格上进行clic时,使用Tap Gesture Recognizer设置的方法是调用,而不是didSelectRowAtIndexPath
。
“有趣”的是,如果我在单元格上停留2秒或更长时间,则会调用委托didSelectRowAtIndexPath
,而不是TapGestureRecognizer
方法。
答案 0 :(得分:7)
成功识别触摸后,UITapGestureRecognizer
可能cancels the touch event。
尝试设置
tapGestureRecognizer.cancelsTouchesInView = NO;
有关此主题的更全面的阅读,have a look an the conceptual docs on gesture recognition。
答案 1 :(得分:-2)
更好的方法是不要使用didSelectRowAtIndexpath方法。
如果您必须在表格视图单元格上实现手势,则在cellForRowAtIndexpath中创建轻击手势,并使用标记标识特定单元格单击。