我有包含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)
问题是我每次出现视图时都会添加它。我想在添加之前检查手势是否存在。我不想每次都添加它。
答案 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)
理解你想要的东西并不是那么清楚。如果要跟踪放置的手势,则可以在视图控制器中存储静态变量,并检查它是否为零。 这样手势就会保存在记忆中。