【发布时间】:2015-06-13 05:38:53
【问题描述】:
我正在使用 ECSlidingViewController(github hamburger-menu/slide-out menu 项目)。
我有一个 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)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {,但我不确定我是否正确使用它。
如果我返回 YES,我的汉堡菜单会滑出,但我的 tableview 不起作用/滚动。如果我返回 NO,则汉堡菜单不起作用/滑出,但 tableView 起作用。
所以我需要区分这两者并相应地返回YES/NO。
但是,我怎样才能区分它们呢?
我不能在 panGesture 上使用目标/动作,因为这样-gestureRecognizer:shouldReceiveTouch 永远不会被调用(这意味着我不能让 tableview 滚动)。如果我将gestureRecognizer 转换为-gestureRecognizer:shouldReceiveTouch 中的UIPanGestureRecognizer,并使用-velocityInView,因为我只得到初始点击。所以我只能得到 0.0 的 X 和 Y。
在这种情况下如何识别用户是否向左滑动?
【问题讨论】:
标签: ios objective-c uitableview cocoa-touch