检查特定的手势识别器

时间:2015-05-29 16:18:27

标签: ios swift uipageviewcontroller gestures

我有包含VC的uipageviewcontroller。与任何pageviewcontroller一样,您可以向左滑动,向右滑动以更改VC。每次动画完成后,我都会添加gestureRecognizer。我的问题是如何检查视图是否有特定的识别器?我需要这样的代码:

if check view has specific recognizer == false {
 add recognizer
}else{
just skip.
}

我这样做是因为我有侧栏菜单。当Sidebarmenu出现时,我想为当前索引pagecontentviewcontroller添加手势。所以,我的代码工作正常,我只是不想每次动画结束时添加手势。

我正在添加代码。问题是我的手势是在其他类(非当前)中创建的。首先,我创建了一个我保持手势的类实例:

let transtionManger = TransitionManger()

添加此类名为exitPanGesture:

的var之后
pageContentViewController.view.addGestureRecognizer(transtionManger.exitPanGesture3)

问题是我每次出现视图时都会添加它。我想在添加之前检查手势是否存在。我不想每次都添加它。

2 个答案:

答案 0 :(得分:9)

这是你在找什么?请参阅评论作为解释:

// If any gesture recogniser is added to the view (change view to any view you want to test)
      if let recognizers = view.gestureRecognizers {
            for gr in recognizers {
                // This check for UIPanGestureRecognizer but you can check for the one you need
                if let gRecognizer = gr as? UIPanGestureRecognizer {
                    println("Gesture recognizer found")
                }
            }
        }

答案 1 :(得分:1)

理解你想要的东西并不是那么清楚。如果要跟踪放置的手势,则可以在视图控制器中存储静态变量,并检查它是否为零。 这样手势就会保存在记忆中。