首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果视图注册pan手势,则夹持手势无效。

如果视图注册pan手势,则夹持手势无效。
EN

Stack Overflow用户
提问于 2021-07-06 11:13:42
回答 1查看 204关注 0票数 0

我有一个用手势操作视图的应用程序。视图连接到pan、捏和旋转手势。如果我开始用两个手指与视图交互,所有的手势都同时工作(预期的行为)。但是,如果你从一个手指开始,捏和旋转手势不起作用。当我试图在摇摄时开始捏或旋转时,委托中的任何方法都不会被调用。

代码语言:javascript
复制
shouldRecognizeSimultaneouslyWith

永远都是真的。

预期的行为,

  1. 视图上的一个手指盘,添加第二个手指并开始捏/旋转交互(类似于instagram故事编辑器)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-06 14:46:38

在一个干净的项目中,我添加了以下内容:

代码语言:javascript
复制
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        view.addGestureRecognizer({
            let gesture = UIPanGestureRecognizer(target: self, action: #selector(onPan))
            gesture.delegate = self
            return gesture
        }())
        view.addGestureRecognizer({
            let gesture = UIPinchGestureRecognizer(target: self, action: #selector(onPinch))
            gesture.delegate = self
            return gesture
        }())
        view.addGestureRecognizer({
            let gesture = UIRotationGestureRecognizer(target: self, action: #selector(onRotate))
            gesture.delegate = self
            return gesture
        }())
    }
    
    @objc private func onPan(_ sender: UIPanGestureRecognizer) {
        print("Did pan to \(sender.translation(in: sender.view))")
    }
    
    @objc private func onPinch(_ sender: UIPinchGestureRecognizer) {
        print("Did pinch to \(sender.scale)")
    }
    
    @objc private func onRotate(_ sender: UIRotationGestureRecognizer) {
        print("Did rotate to: \(sender.rotation)")
    }


}

extension ViewController: UIGestureRecognizerDelegate {
    
    func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { true }
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { true }
    
}

在您描述的场景之后,所有三个方法都报告了更改:

  • 我开始用一次触摸拖动手势
  • 我按了另一个手指开始旋转手势和捏手势

这个例子已经不适合你了吗?你正在经历的行为是什么,预期的行为是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68269545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档