【问题标题】:How to keep two gestureRecognizers in one view and switch between them?如何将两个手势识别器保持在一个视图中并在它们之间切换?
【发布时间】:2015-05-27 12:20:58
【问题描述】:

我的 UIPageViewController 有问题。到目前为止我所做的: 1.在pageViewController上你可以左右滑动来改变VC 2.增加横向菜单。添加横向菜单时,我创建了 pangesture 识别器并将其添加到 pageContentVC(因此我可以拖动 pageContentVC 以关闭侧边栏菜单)

 var menuViewController: UIViewController! {
    didSet {
        self.exitPanGesture = UIPanGestureRecognizer()
        self.exitPanGesture.addTarget(self, action:"handleOffstagePan:")
      //  self.exitPanGesture.view?.userInteractionEnabled = false
        self.sourceViewController.view.addGestureRecognizer(self.exitPanGesture)

    }
}

这里我将pageContentVC设置为transitionManager的sourceVC:

 func resetToMainPage(index: Int!) {
    /* Getting the page View controller */
    mainPageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("MainPageViewController") as UIPageViewController
    self.mainPageViewController.dataSource = self
    self.mainPageViewController.delegate = self

    let pageContentViewController = self.viewControllerAtIndex(index)

    self.transtionManger.sourceViewController = pageContentViewController // adding swipe to the pageContentViewControlle in order to close menu

    self.mainPageViewController.setViewControllers([pageContentViewController!], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil)


    self.mainPageViewController.view.frame = CGRectMake(0, 102, self.view.frame.width, self.view.frame.height)
    self.addChildViewController(mainPageViewController)
    self.view.addSubview(mainPageViewController.view)
    self.mainPageViewController.didMoveToParentViewController(self)

}
  1. 关闭菜单后,我禁用了手势识别器。 ` var presentingP:Bool!{ 设置{ 如果呈现P == true { // 只有在 menucontroller 的视图出现时才启用手势识别器

            self.exitPanGesture.view?.userInteractionEnabled = true
        }else{
            // disable gesture recognizer when menu is not presented
            self.exitPanGesture.view?.userInteractionEnabled = false
    
            isMenuVisible = false
        }
    }
    

    } ` 到目前为止,我可以左右滑动来更改 VC。 问题是我无法在我的 VC 上滚动 tableView。在我禁用 pageContentVC 手势后,除了左右滑动(以更改 VC)之外,所有内容都将变为禁用状态。问题:如何将两个手势识别器保持在一个视图中并在它们之间切换?

【问题讨论】:

    标签: ios swift gesture


    【解决方案1】:

    您可以使用UIGestureRecognizerenabled 属性来禁用您不想使用的一个并启用另一个。

    UIGestureRecognizer documentation

    【讨论】:

    • 它有效!当我禁用 exitPanGesture 时!是否可以代替分配 PageContentViewController 分配 PageviewController ?为什么这不起作用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多