如何检测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>
theres苹果文件和刷卡识别示例请参阅下面的链接;
下面的链接将您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 } } }