Tableview didSelectRowAtIndexPath 不起作用

Posted

技术标签:

【中文标题】Tableview didSelectRowAtIndexPath 不起作用【英文标题】:Tableview didSelectRowAtIndexPath is not working 【发布时间】:2015-05-07 05:35:04 【问题描述】:

我在同一个控制器上使用点击手势和表格视图。 发现在 uiviewcontroller 和 tableview 上使用手势时,tableview didSelectRowAtIndexPath 不起作用。 但我想要视图控制器上的两件事。任何人面对这些东西请告诉我该怎么做。

【问题讨论】:

UITapGestureRecognizer breaks UITableView didSelectRowAtIndexPath的可能重复 【参考方案1】:

您需要实现UIGestureRecognizerDelegate 方法gestureRecognizer: shouldReceiveTouch:,它返回一个BOOL 值。如果返回YES,则将处理触摸视图上的点击,否则将丢弃点击,并且底层视图的触摸功能将起作用。

在您的情况下,您需要在表格视图中省略点击手势的点击事件,您可以这样做-

#pragma mark UIGestureRecognizerDelegate methods

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

    if ([touch.view isDescendantOfView:tableViewInstance]) 

        // return NO 
        // to skip gesture recognizer events
        return NO;
    
    // return YES
    // to handle gesture recognizer events on other views
    return YES;

【讨论】:

以上是关于Tableview didSelectRowAtIndexPath 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

SFSafariViewController 在安装 YouTube 时请求打开 YouTube 应用

如何使用tableview外的按钮将tableview移动到新的tableview

tableView(cellForRowAtIndexPath) 与 tableView.cellForRowAtIndexPath()?

TableView里面的tableview cell swift 3

将 tapGesture 添加到 tableView 则无法执行 tableView(_ tableView: UITableView, didSelectRowAt indexPath: Index

Swift:tableView 行的高度,其 tableView 单元格具有动态行数的嵌套 tableView