ios - 捏合手势比例重置为 1?

标签 ios swift uigesturerecognizer scenekit uipinchgesturerecognizer

我在看这个仓库

https://github.com/mmohsin991/gestures/blob/master/gestures/ViewController.swift

和这个例子

http://www.raywenderlich.com/50398/opengl-es-transformations-gestures

我有以下代码

      @IBOutlet var pinchProperty: UIPinchGestureRecognizer!
      @IBAction func pinchAction(sender: UIPinchGestureRecognizer) {
        if(dbg){println("scale \(pinchProperty.scale)")}
        let pinch: CGFloat = pinchProperty.scale
        switch pinchProperty.state{
        case .Began:
          println("pinch started")
        case .Changed:
          geometryNodeMain.scale = SCNVector3(x:Float(pinch),y:Float(pinch),z:Float(pinch))
        case .Ended:
          println("pinch ended")
        case .Cancelled:
          break
        case .Failed:
          break
        case .Possible:
          break
        default:
          break
        }
      }

最初,双指捏合可以放大和缩小,但随后比例会重置为 1。转换 openGL 代码 http://www.raywenderlich.com/50398/opengl-es-transformations-gestures很乱。

有人可以帮忙转换这段代码吗?

最佳答案

这有效。

在某处初始化变量。

  var scaleStart:CGFloat = 1.0
  var scaleEnd:CGFloat = 1.0

然后像这样

 @IBOutlet var pinchProperty: UIPinchGestureRecognizer!
  @IBAction func pinchAction(sender: UIPinchGestureRecognizer) {

    if(dbg){println("scale \(pinchProperty.scale)")}

    let pinch: CGFloat = pinchProperty.scale

    switch pinchProperty.state{
    case .Began:
      scaleStart = scaleEnd*pinch
      if(dbg){println("pinch started \(scaleStart)")}
    case .Changed:
      scaleStart = scaleEnd*pinch
      geometryNodeMain.scale = SCNVector3(
        x:Float(scaleStart),
        y:Float(scaleStart),
        z:Float(scaleStart)
      )
    case .Ended:
      scaleEnd = scaleStart
      if(dbg){println("pinch ended \(scaleEnd)")}
    case .Cancelled:
      break
    case .Failed:
      break
    case .Possible:
      break
    default:
      break
    }
  }

关于ios - 捏合手势比例重置为 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29280004/

相关文章:

iphone - 使用 UIGestureRecognizer 沿 x 轴移动 UIImageView

ios - WKWebView 正在尝试在后台运行,尽管它已关闭并且应该被处置

swift - Swift 中的 Unicode 标量值

ios - ( swift )初始 View Controller 调用 TableView Controller 而不点击任何按钮

ios - 对于键 setDefaultLabelText,此类不符合键值编码。

ios - UIPanGestureRecognizer 没有启动。 swift 3

ios - Swift 单元测试 - 我如何断言 CGColor 是它应该是什么?

ios - 如何使用静态和动态单元格实现 UITableView - IOS

ios - 有没有办法防止 iOS6 杀死特定的任务进程?

ios - 如何使用 UIPanGestureRecognizer 在 ios 中拖动线条