ios - 如何在iOS的整个视图上阻止2个手指手势
问题描述
我目前正在使用 SceneKit 的默认摄像头,我想继续使用单击和单次滑动手势,但我想阻止默认的 2 指缩放、平移和旋转。
有没有办法捕获在视图上执行的所有 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)
}
解决方案
此外 - 一旦你建立了自己的相机 - 你可以测试触摸次数 - 不是所有的代码都包括在内,但类似:
func dragBegins(vRecognizer: UIPanGestureRecognizer)
{
if(data.gameState == .run)
{
if(vRecognizer.numberOfTouches == 2) { dragMode = .strafe }
}
}
您可以使用 .began、.changed、.ended 等识别器状态来检查流程并对其进行控制。
推荐阅读
- javascript - 在 iframe 内单击
- bash - Bash:如何将别名命令与 watch 结合使用
- nativescript - 在 nativescript 中看不到 console.log() 中的值
- sql - 如何将 DEFINE 变量设置为等于 PL/SQL 中另一个已定义表的选择
- csv - Can't display CSV file in pyspark(ValueError: Some types cannot be determined by the first 100 rows, please try again with sampling)
- typescript - 是否可以在打字稿中使用随机或相同的字符串生成字符串枚举?
- node.js - 在 dynamodb 中获取关系数据
- image - 如何获取 wix 的 Installshield SplashBitmap 图像?
- php - PHP srv_query 未从某些存储过程返回结果
- excel - Excel 中的高级排序