ios - 两指向下滑动返回菜单
问题描述
我正在创建一个应用程序,其中第一个屏幕是主菜单。一个按钮进入设置页面并位于导航控制器中,因此有一个“后退”按钮。另一个选项打开相机以查看现实。我想启用识别两个手指向下滑动返回主菜单的能力。
这个最新版本的 Swift 很新,所以我需要帮助!
解决方案
这更像是一个 iOS 问题,而不是一个 Swift 问题。
看看UISwipeGestureRecognizer
课堂。您可以将滑动手势识别器配置为需要两指滑动。
滑动手势识别器的特点是它是“一次性”手势。在检测到滑动之前它不会报告任何内容,然后它会触发您的操作。
滑动手势识别器不会让您慢慢向下滚动并看到主菜单开始出现。如果您想要这种效果,则必须改用 2 指平移手势识别器并添加一些您自己的自定义代码来处理中间滚动和确定手势从滚动到滑动跨越阈值的逻辑。
一个快速的谷歌搜索发现了这个解释使用滑动手势识别器的链接:
(对于您的情况,您需要添加swipeRecognizer.numberOfTouchesRequired = 2 and change your swipe direction to
.down`)
修改该示例中的代码:
let swipeRecognizer = UISwipeGestureRecognizer(target: self,
action: #selector(ViewController.swipeDetected(_:)))
swipeRecognizer.direction = .down
swipeRecognizer.numberOfTouchesRequired = 2
self.view.addGestureRecognizer(swipeRecognizer)
(虽然动作签名在我看来是错误的。 UIGestureRecognizer 的发送者是手势识别器,而不是视图控制器。我希望 init 调用看起来像这样:
let swipeRecognizer = UISwipeGestureRecognizer(target: self,
action: #selector(ViewController.swipeDetected as
(UITapGestureRecognizer) -> () -> ()))
编辑:
两指滑动需要更改的设置是 numberOfTouchesRequired,而不是 numberOfTapsRequired。我修复了上面的代码以及动作签名。
推荐阅读
- javascript - 在对象中调用方法时,它说它不是函数
- excel - Excel 高级条件格式
- r - 不同模型的先验分布和后验分布图
- javascript - 如何在 js 文件中轻松找到所需的 jquery 函数?
- javascript - Laravel VueJS 将动态数量绑定到产品列表组件中的每个输入
- angular - 我应该将一个组件全部交给 @inputs() 还是只交给一个 ID/ 对象?
- php - 为什么 PHP 的 cURL 在 HTTP 标头前加上“HTTP_”?
- c++ - 运算符+重载错误。无法返回对对象的引用
- javascript - 理解JS的Object.create函数
- java - Java线程项目奇怪的行为,同时增加线程数