如何检测iPhone SDK中的滑动手势?

在我的iPhone应用程序中,我需要识别用户在视图上所做的轻扫手势。

我想要识别滑动手势并在滑动时执行一个function。

我需要该视图应水平滑动,并显示另一个视图为用户做一个滑动的手势。

需要做什么?

我如何识别它?

任何方向或教程将非常感激。

使用UISwipeGestureRecognizer 。 没有什么其他的说真的,手势识别器很容易。 甚至有关于这个主题的WWDC10video 。 会议120和121. 🙂

如果你知道它是如何工作的,但仍然需要一个快速的例子,在这里! (至less对我来说,这会变得方便,当我需要复制粘贴的例子,而不用记住它)

 UISwipeGestureRecognizer *mSwipeUpRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)]; [mSwipeUpRecognizer setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)]; [[self view] addGestureRecognizer:mSwipeUpRecognizer]; 

并在.h文件中添加:

 <UIGestureRecognizerDelegate> 

下面的链接将您redirect到一个video教程,该video教程将向您介绍如何在Objective-C中的iPhone上检测滑动操作:

UISwipeGestureRecognizer教程(检测iPhone上的滑动)

下面的代码示例,在Swift中实现:

您需要为每个方向都有一个UISwipeGestureRecognizer 。 这UISwipeGestureRecognizer.direction因为UISwipeGestureRecognizer.direction属性是一个选项样式的位掩码,但是每个识别器只能处理一个方向。 你可以把它们全部发送给同一个处理程序,然后把它们整理出来,或者发送给不同的处理程序。 这里有一个实现:

 override func viewDidLoad() { super.viewDidLoad() var swipeRight = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:") swipeRight.direction = UISwipeGestureRecognizerDirection.Right self.view.addGestureRecognizer(swipeRight) var swipeDown = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:") swipeDown.direction = UISwipeGestureRecognizerDirection.Down self.view.addGestureRecognizer(swipeDown) } func respondToSwipeGesture(gesture: UIGestureRecognizer) { if let swipeGesture = gesture as? UISwipeGestureRecognizer { switch swipeGesture.direction { case UISwipeGestureRecognizerDirection.Right: println("Swiped right") case UISwipeGestureRecognizerDirection.Down: println("Swiped down") default: break } } }