Ios 屏幕边缘平移手势+;表视图同时滚动

Ios 屏幕边缘平移手势+;表视图同时滚动,ios,objective-c,uitableview,scroll,swipe,Ios,Objective C,Uitableview,Scroll,Swipe,我有一个UITableView,它在一个列表中显示一组用户。这可以通过一个简单的推送序列从以前的视图控制器加载。 我面临着一个奇怪的问题,如果我尝试使用ScreenEdgePanGesture来滑动以返回,并在拖动时停止,我还可以上下移动,从而导致TableView滚动。我在下面上传了一张图片,上面显示了我正在描述的状态。此时,我可以左右移动并执行滑动返回手势,但也可以上下移动并滚动表格 我想在屏幕被拖动到关闭状态时禁用TableView滚动 我尝试添加代码来禁用多个手势识别器,但似乎没有效果

我有一个UITableView,它在一个列表中显示一组用户。这可以通过一个简单的推送序列从以前的视图控制器加载。 我面临着一个奇怪的问题,如果我尝试使用ScreenEdgePanGesture来
滑动以返回
,并在拖动时停止,我还可以上下移动,从而导致TableView滚动。我在下面上传了一张图片,上面显示了我正在描述的状态。此时,我可以左右移动并执行
滑动返回
手势,但也可以上下移动并滚动表格

我想在屏幕被拖动到关闭状态时禁用TableView滚动

我尝试添加代码来禁用多个手势识别器,但似乎没有效果

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return NO;
}
是否有任何方法可以禁用此行为? 我想提到的是,我在其他屏幕上观察到了所需的行为,在这些屏幕上,一旦拖动动作开始,TableView就会被锁定。不幸的是,我无法辨别这些类的实现或故事板中的安排有什么不同。通过环顾四周的这些问题,我注意到我所希望的是正确的、自然的行为。然而,我在上面发布的屏幕的行为与正常情况有所不同。我看不出它有什么特别之处

有关故障TableView设置的其他信息。也许有人能发现一些错误

我添加了一个额外的视频来进一步显示这个问题。我希望这更有意义:


非常感谢

我终于找到了解决办法。我不确定是什么导致了这种行为,但如果有人仍在努力解决这个问题,我就是这样做的,以禁止TableView滚动:

在“我的视图”中添加了ScreenedGetAnrecogner:

self.panRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(didPan)];
[self.panRecognizer setEdges:UIRectEdgeLeft];
[self.view addGestureRecognizer:self.panRecognizer];
然后,我添加了一个方法,在您开始拖动时立即禁用滚动,并在您完成手势后立即重新启用:

- (void)didPan {
    self.tableView.scrollEnabled = NO;
    if ([self.panRecognizer state] == UIGestureRecognizerStateEnded) {
        self.tableView.scrollEnabled = YES;
    }
}

现在,这将禁用“滚动中间”手势,但在完成拖动后将其恢复。

我终于找到了解决方案。我不确定是什么导致了这种行为,但如果有人仍在努力解决这个问题,我就是这样做的,以禁止TableView滚动:

在“我的视图”中添加了ScreenedGetAnrecogner:

self.panRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(didPan)];
[self.panRecognizer setEdges:UIRectEdgeLeft];
[self.view addGestureRecognizer:self.panRecognizer];
然后,我添加了一个方法,在您开始拖动时立即禁用滚动,并在您完成手势后立即重新启用:

- (void)didPan {
    self.tableView.scrollEnabled = NO;
    if ([self.panRecognizer state] == UIGestureRecognizerStateEnded) {
        self.tableView.scrollEnabled = YES;
    }
}

现在,这将禁用“滚动中间”手势,但在完成拖动后会将其恢复。

我无法在我的应用程序中复制该手势。您能提供示例吗?我恐怕不能提供示例,因为这是一个集成在大型应用程序中的小组件。但是,如果您愿意,我可以向您提供详细信息,以便您可以从iTunesConnect下载,并指导您如何进入我所说的屏幕。但您仍然可以尝试在演示项目中复制此问题。我无法在我的应用程序中复制此问题。您能提供示例吗?我恐怕不能提供示例,因为这是一个集成在大型应用程序中的小组件。不过,如果您愿意,我可以给您提供详细信息,以便您可以从iTunesConnect下载,并指导您如何进入我所说的屏幕。但您仍然可以尝试在演示项目中复制此问题。