【发布时间】:2015-05-07 05:35:04
【问题描述】:
我在同一个控制器上使用点击手势和表格视图。
发现在 uiviewcontroller 和 tableview 上使用手势时,tableview didSelectRowAtIndexPath 不起作用。
但我想要视图控制器上的两件事。任何人面对这些东西请告诉我该怎么做。
【问题讨论】:
标签: ios objective-c uiviewcontroller tableview uigesturerecognizer
我在同一个控制器上使用点击手势和表格视图。
发现在 uiviewcontroller 和 tableview 上使用手势时,tableview didSelectRowAtIndexPath 不起作用。
但我想要视图控制器上的两件事。任何人面对这些东西请告诉我该怎么做。
【问题讨论】:
标签: ios objective-c uiviewcontroller tableview uigesturerecognizer
您需要实现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;
}
【讨论】: