Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将panGestureRocgnizer添加到TableView中,并在正确识别平移的同时仍保持TableView滚动?_Ios_Objective C_Uitableview_Cocoa Touch - Fatal编程技术网

Ios 如何将panGestureRocgnizer添加到TableView中,并在正确识别平移的同时仍保持TableView滚动?

Ios 如何将panGestureRocgnizer添加到TableView中,并在正确识别平移的同时仍保持TableView滚动?,ios,objective-c,uitableview,cocoa-touch,Ios,Objective C,Uitableview,Cocoa Touch,我使用的是ECSlidingViewController(github汉堡菜单/滑出菜单项目) 我有一个TableViewController,我需要将以下内容添加到我的TableViewController中 ECSlidingViewController *ecsVC = (ECSlidingViewController *)viewController; ecsVC.panGesture.delegate = self; [self.view

我使用的是ECSlidingViewController(github汉堡菜单/滑出菜单项目)

我有一个TableViewController,我需要将以下内容添加到我的TableViewController中

        ECSlidingViewController *ecsVC = (ECSlidingViewController *)viewController;
        ecsVC.panGesture.delegate = self;
        [self.view addGestureRecognizer:ecsVC.panGesture];
我无法执行self.navigationcontroller.view addGestu…,因为如果我推送一个视图,那么我仍然可以获得我不想要的pangesture功能。我只想在这一个视图上看到它

所以我必须做
self.VIEW addGest…
。但是,一旦我这样做,tableView就会停止滚动

如果我向右平移手指,汉堡包菜单会滑出,但正如我所说,我的tableview不会滚动

因此,我尝试使用
-(BOOL)手势识别器:(uigesturecognizer*)手势识别器应该接收touch:(UITouch*)touch{
,但我不确定我是否正确使用了它

如果我返回YES,我的汉堡包菜单将滑出,但我的tableview不工作/滚动。如果我返回NO,汉堡包菜单将不工作/滑出,但tableview工作

因此,我需要区分这两者,并相应地返回YES/NO

但是,我怎样才能区分不同呢

我不能在panGesture上使用目标/动作,因为这样就永远不会调用
-gestureReceiveTouch:shouldReceiveTouch
(这意味着我无法使tableview滚动)。如果我在
-手势识别器中将手势识别器强制转换为UIPanGestureRecognizer:shouldReceiveTouch
,并使用
-velocityInView
,因为我只获得初始点击。因此我每个只获得0.0的X&Y

在这种情况下,我如何识别用户是否在向左滑动?

试试以下方法:

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
    CGPoint translation = [gestureRecognizer translationInView:self.view];

    if (ABS(translation.x) > ABS(translation.y)) {
        return YES;
    }

    return NO;
}