UITableViewCell上的UIPanGestureRecognizer会覆盖UITableView的滚动视图手势识别器

soo*_*per 20 cocoa-touch uigesturerecognizer ios

我已经分类了UITableViewCell,在那个课程中我应用了一个Pan手势识别器:

UIPanGestureRecognizer *panning = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePanning:)];
panning.minimumNumberOfTouches = 1;
panning.maximumNumberOfTouches = 1;
[self.contentView addGestureRecognizer:panning];
[panning release];
Run Code Online (Sandbox Code Playgroud)

然后,我实现了委托协议,该协议应该允许在表的视图中同时进行手势:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

然后我在handlePanning方法中放置一个日志,看看它何时被检测到:

- (void)handlePanning:(UIPanGestureRecognizer *)sender {
    NSLog(@"PAN");
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法垂直滚动查看tableview中的单元格列表,handlePanning无论我在哪个方向上调用它都会被调用.

我想要的handlePanning只是在只有水平平移而不是垂直时调用.会很感激一些指导.

Jac*_*ill 17

您是否尝试过设置pannings委托属性?

panning.delegate = /* class name with the delegate method in it */;
Run Code Online (Sandbox Code Playgroud)

您还需要将该类与UIGestureRecognizerDelegate保持一致.