在我的iPhone应用程序中,我需要识别用户在视图上所做的滑动手势。
我想要识别滑动手势并在滑动时执行功能。
我需要视图应该水平滑动并在用户进行滑动手势时显示另一个视图。
需要做什么?
我如何识别它?
答案 0 :(得分:44)
如果你知道它是如何工作的,但仍然需要一个简单的例子,这就是它! (它至少对我来说会变得很方便,当我需要复制粘贴示例时,不会尝试记住它)
UISwipeGestureRecognizer *mSwipeUpRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
[mSwipeUpRecognizer setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:mSwipeUpRecognizer];
并在.h文件中添加:
<UIGestureRecognizerDelegate>
答案 1 :(得分:41)
使用UISwipeGestureRecognizer
。真的没什么可说的,手势识别器很容易。甚至有关于这个主题的WWDC10 videos。会议120和121.:)
答案 2 :(得分:-1)
以下链接会将您重定向到视频教程,该教程将向您解释如何在 Objective-C 中检测iPhone上的滑动:
UISwipeGestureRecognizer Tutorial (Detecting swipes on the iPhone)
下面的代码示例,在 Swift :
中实现每个方向都需要一个UISwipeGestureRecognizer
。这有点奇怪,因为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
}
}
}