将UIGestureRecognizer事件传递给子TableViewCells

时间:2013-07-11 18:28:28

标签: ios objective-c uitableview uiviewcontroller uigesturerecognizer

我目前有一个设置:

RootVC,在self.view上使用UIPanGestureRecognizer。然后RootVC有一个子UITableViewController,因此UITableViewController.view是self.view的子视图。

UITableViewController上的单元格还具有手势识别器,可以将它们侧向滑动。当UITableViewController本身就是根视图控制器时,这非常有效。

我的问题是我试图将一个特定的手势从self.view手势识别器传递到表格单元格。我试过代表:

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

-(BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer

我可以正确识别我想在下面发送的手势,并在该实例中返回NO,但这似乎取消了手势而不是将其传递给子视图。

我知道我可以打电话

[self.view.subviews[0] gestureShouldBegin:gestureRecognizer];

但是因为它的表视图单元格我无法确定手势应该发送到哪个单元格。

我一直在想像

这样的东西
[[self.childViewControllers[0] cellForRowAtIndexPath:indexPath] gestureShouldBegin:gestureRecognizer];

会工作,但我不知道如何确定正确的indexPath ..

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

查看(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)点

您需要先将手势点转换为tableView的坐标。