关闭iOS向后滑动

时间:2018-07-08 06:56:05

标签: ios swift uigesturerecognizer

是否可以关闭屏幕某些部分的后掠功能?特别是,我正在考虑使用此方法:

func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer!) -> Bool {
    return false;
}

我正在考虑识别用户按下的屏幕部分,如果在一定间隔内,我将返回true,否则返回false。不知道如何在用户按下的地方取纸。

1 个答案:

答案 0 :(得分:2)

我假设您正在谈论UINavigationController提供的功能。

首先,您的类应符合UIGestureRecognizerProtocol这样的要求:

class MyController: UIViewController, UIGestureRecognizerProtocol

然后您需要注册成为导航控制器的委托,因此可能在viewDidLoad或viewWillAppear中(取决于需要)具有以下功能:

self.navigationController?.interactivePopGestureRecognizer?.delegate = self

然后,您可以使用以下命令检查手势在视图中的开始位置:

func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
    let location = gestureRecognizer.location(in: self.view)
    if location.y > 500 {
        return false
    }

    return true
}

很明显,这只是一个测试用例,当它在垂直方向上开始高于500时,它会忽略手势,您可以将其更改为所需的任何内容。