1

Я смотрел на этого репоМасштаб жести жесткости при нажатии на 1?

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 беспорядок.

Может кто-то помочь преобразовать этот код?

ответ

2

Это работает.

Инициализировать переменные где-нибудь.

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