如何在iOS中中止手势?

时间:2013-07-05 10:50:57

标签: ios gesture uipageviewcontroller

大家

我注意到在以下文档中,手势可以中止。我想在此时中止手势:pageViewController:willTransitionToViewControllers:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPageViewControllerDelegateProtocolRef/UIPageViewControllerDelegate.html

但是,我不知道该怎么做。有人能说出来吗?

非常感谢。

3 个答案:

答案 0 :(得分:1)

您可以简单地获取手势识别器,然后使用recognizer.enabled = NO;禁用它并取消任何正在进行的手势。当你准备好时(可以立即)将它设置回YES

答案 1 :(得分:1)

您可以使用下面提到的委托方法。当您可以检查触摸视图是否具有链接。在此委托方法中相应地返回是或否。

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

答案 2 :(得分:0)

UIPageViewController实现了UITapGestureRecognizerUIPanGestureRecognizer。如果要禁用任何手势识别器,可以通过迭代其返回数组的gestureRecognizers属性

来实现。
for (UIGestureRecognizer *recognizer in self.pageViewController.gestureRecognizers)
{
  if([recognizer isKindOfClass:[UITapGestureRecognizer class]])
  {
        UITapGestureRecognizer *rec = (UITapGestureRecognizer *)recognizer;
        [rec setEnabled:NO];
  }
}

您可以在UIPageViewController委派方法pageViewController:willTransitionToViewControllers:中检查下一个视图控制器,并为任何特定视图控制器禁用UITapGestureRecognizer,并在它具有后再次启用它已不在视野中了。