33

在我的 iPhone 应用程序中,我需要识别用户在视图上做出的滑动手势。

我希望识别滑动手势并在滑动时执行功能。

我需要视图应该水平滑动并在用户做出滑动手势时显示另一个视图。

需要做什么?

我如何识别它?

4

3 回答 3

44

如果你知道它是如何工作的,但仍然需要一个简单的例子,那就是!(至少对我来说会很方便,当我需要复制粘贴示例时,无需尝试记住它)

UISwipeGestureRecognizer *mSwipeUpRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];

[mSwipeUpRecognizer setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)];

[[self view] addGestureRecognizer:mSwipeUpRecognizer];

并在 .h 文件中添加:

<UIGestureRecognizerDelegate>
于 2012-10-01T19:46:41.073 回答
40

使用UISwipeGestureRecognizer. 真的没什么好说的,手势识别器很容易。甚至还有关于这个主题的WWDC10 视频。会议 120 和 121。:)

于 2010-11-25T17:50:10.453 回答
1

下面的以下链接将您重定向到一个视频教程,该视频教程解释了如何在Objective-C中检测 iPhone 上的滑动:

UISwipeGestureRecognizer 教程(检测 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
        }
    }
}

斯威夫特 5 版本:

let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGestureRight))
swipeRight.direction = UISwipeGestureRecognizer.Direction.right
self.view.addGestureRecognizer(swipeRight)
于 2015-05-08T16:42:52.263 回答