ios - 关闭 iOS 后滑
问题描述
是否可以关闭屏幕某些部分的后滑动?特别是,我正在考虑使用这种方法:
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer!) -> Bool {
return false;
}
我正在考虑识别用户按下了屏幕的哪个部分,如果它在某个时间间隔内,我会返回 true,否则返回 false。不确定如何拾取用户按下的位置。
解决方案
我假设您正在谈论 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 时它会忽略手势,您可以将其更改为任何您想要的。