Ios 如何将panGestureRocgnizer添加到TableView中,并在正确识别平移的同时仍保持TableView滚动?
我使用的是ECSlidingViewController(github汉堡菜单/滑出菜单项目) 我有一个TableViewController,我需要将以下内容添加到我的TableViewController中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 *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;
}