首页 > 解决方案 > 关闭 iOS 后滑

问题描述

是否可以关闭屏幕某些部分的后滑动?特别是,我正在考虑使用这种方法:

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

我正在考虑识别用户按下了屏幕的哪个部分,如果它在某个时间间隔内,我会返回 true,否则返回 false。不确定如何拾取用户按下的位置。

标签: iosswiftuigesturerecognizer

解决方案


我假设您正在谈论 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 时它会忽略手势,您可以将其更改为任何您想要的。


推荐阅读