Tableview didSelectRowAtIndexPath不起作用

时间:2015-05-07 05:35:04

标签: ios objective-c uiviewcontroller tableview uigesturerecognizer

我在同一个控制器上使用tap手​​势和tableview。 发现当在uiviewcontroller和tableview上使用手势时,tableview didSelectRowAtIndexPath将无效。 但我想在视图控制器上做两件事。任何人都面对这些东西,请告诉我该做什么。

1 个答案:

答案 0 :(得分: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;
}