【问题标题】:Remove tap recogniser for modal UIView/Partial Curl删除模态 UIView/Partial Curl 的点击识别器
【发布时间】:2014-04-19 18:42:22
【问题描述】:

有没有办法去除部分卷曲过渡的点击手势识别? 现在,当用户点击卷曲视图时,它会卷曲回来 - 关闭。

我将它用于快速注册控制器,我不希望用户在没有警告的情况下意外点击并返回。

【问题讨论】:

    标签: ios iphone xcode transition modalviewcontroller


    【解决方案1】:

    对于任何试图让 Hitendra 回答工作的人,您必须将代码放在 viewDidLoad 之后。我成功使用了viewDidAppear 函数。

    这也是一个快速的实现:

    private func removePartialCurlTap() {
      if let gestures = self.view.gestureRecognizers as? [UIGestureRecognizer] {
        for gesture in gestures {
          self.view.removeGestureRecognizer(gesture)
        }
      }
    }
    

    这样放置:

    override func viewDidAppear(animated: Bool) {
      super.viewDidAppear(animated)
      removePartialCurlTap()
    }
    

    【讨论】:

      【解决方案2】:

      当您使用部分卷曲过渡时,它会自动将要在触摸时关闭的手势识别器添加到下一个屏幕的手势识别器数组中。您可以很容易地看到向 viewDidAppear() 添加断点并在控制台中使用此代码,如您在我的打印中看到的那样
      po self.view.gestureRecognizers

      console

      现在将此代码添加到 viewDidAppear() 的开头
      self.view.gestureRecognizers?.removeAll()

      此外,如果您想使用带有卷曲动画的按钮返回上一屏幕,您可以轻松地在按钮的操作方法中使用此代码
      self.dismissViewControllerAnimated(true, completion: {})

      【讨论】:

        【解决方案3】:
        for(UIGestureRecognizer *gesture in [yourview gestureRecognizers])
        {
            if([gesture isKindOfClass:[UIGestureRecognizer class]])
            {
                [yourview removeGestureRecognizer:gesture];
            }
        }
        

        请尝试上面的代码。

        【讨论】:

        • 我无法让它工作。我有 2 个视图控制器:登录和注册。我试图将您的代码放在两个视图控制器中,将您的视图替换为:self.view 和 login.view。两者都没有效果。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-30
        • 1970-01-01
        • 2017-07-13
        • 2021-09-27
        • 1970-01-01
        相关资源
        最近更新 更多