Как заблокировать жесты двумя пальцами для всего вида на iOS - PullRequest
0 голосов
/ 08 апреля 2020

В настоящее время я использую камеру SceneKit по умолчанию и хочу продолжать использовать жесты одним касанием и одним касанием, но я хочу предотвратить масштабирование, сдвиг и поворот по умолчанию для двух пальцев.

Есть ли способ отловить все 2 жеста касания, выполненные в представлении (я полагаю, родительский вид SceneView) и отменить их, не отключая жесты 1 касание?

Документация scnView.defaultCameraController отсутствует, и похоже, что вы можете управлять броском и т. Д. c. но не препятствуйте этому случиться.

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)
    }

1 Ответ

0 голосов
/ 17 апреля 2020

Также - после того, как вы построите свою собственную камеру - вы можете проверить количество касаний - не весь код включен, но что-то вроде:

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

Вы можете использовать такие состояния распознавателя, как .began, . Изменено. Закончено исследовать поток и контролировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...