我在同一个控制器上使用tap手势和tableview。
发现当在uiviewcontroller和tableview上使用手势时,tableview didSelectRowAtIndexPath
将无效。
但我想在视图控制器上做两件事。任何人都面对这些东西,请告诉我该做什么。
答案 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;
}