如何在iOS的整个视图上阻止2个手指手势

问题描述 投票:0回答:1

我当前正在使用SceneKit的默认相机,并且我想继续使用单击和单次滑动手势,但是我想防止默认的两指缩放,平移和旋转。

是否有一种方法可以捕获在一个视图上执行的所有2个触摸手势(我想是SceneView的父视图)并取消它们,而不禁用1个触摸手势?

scnView.defaultCameraController的文档不足,并且看起来您可以控制滚动等,但不能阻止它发生。

private func createCamera() {
        scnView.allowsCameraControl = true

        cameraNode = SCNNode()
        cameraNode.camera = SCNCamera()
        if #available(iOS 11.0, *) {
            scnView.defaultCameraController.maximumVerticalAngle = 30
            scnView.defaultCameraController.minimumVerticalAngle = -30
        }
        cameraNode.position = SCNVector3(x: 0, y: 0, z: 5)
        myScene.rootNode.addChildNode(cameraNode)
    }
ios swift uigesturerecognizer scenekit
1个回答
0
投票

此外-一旦您构建了自己的相机-您就可以测试触摸次数-并非包括所有代码,而是类似:

func dragBegins(vRecognizer: UIPanGestureRecognizer)
    {
        if(data.gameState == .run)
        {
            if(vRecognizer.numberOfTouches == 2) { dragMode = .strafe }
        }
    }

您可以使用诸如.began,.changed,.end之类的识别器状态来检查流程并对其进行控制。

© www.soinside.com 2019 - 2024. All rights reserved.