facebook animation swift facebook-pop

facebook - Swift NSValue.valueWithCGRect



animation facebook-pop (3)

Estoy tratando de animar los límites de un UIButton usando pop pop POPSpringAnimation, pero no puedo encontrar lo que debería usar rápidamente en reemplazo de NSValue.valueWithCGRect

Esto es lo que trato de hacer:

@IBAction func buttonTapped(sender : UIButton) { var springAnimation = POPSpringAnimation() springAnimation.property = POPAnimatableProperty.propertyWithName(kPOPLayerBounds) as POPAnimatableProperty springAnimation.springBounciness = 12.0 springAnimation.springSpeed = 10.0 springAnimation.toValue = NSValue.valueWithCGRect(newBounds) shutterButton.pop_addAnimation(springAnimation, forKey: "size") }


Esto compilará:

let rect = CGRect(x: 0,y: 0,width: 1,height: 1) let val = NSValue(CGRect: rect)

Esta es la "sintaxis del inicializador"


Aquí está mi solución:

func scaleView(view: UIView, magnitude: CGFloat) { var springAnimation = POPSpringAnimation() springAnimation.property = POPAnimatableProperty.propertyWithName(kPOPViewScaleXY) as POPAnimatableProperty springAnimation.springBounciness = 12.0 springAnimation.springSpeed = 10.0 let newRect = CGRect(x: (view.bounds.origin.x + (view.bounds.size.width / 2.0)) - ((view.bounds.size.width / 2.0) * magnitude), y: (view.bounds.origin.y + (view.bounds.size.height / 2.0)) - ((view.bounds.size.height / 2.0) * magnitude), width: view.bounds.size.width * magnitude, height: view.bounds.size.height * magnitude) springAnimation.fromValue = NSValue(CGRect: view.bounds) springAnimation.toValue = NSValue(CGRect: newRect) view.pop_addAnimation(springAnimation, forKey: "size") }


En Swift:

let hover = CABasicAnimation(keyPath: "position") hover.additive = true hover.fromValue = NSValue(CGPoint: CGPointZero) hover.toValue = NSValue(CGPoint: CGPointMake(0.0, -10.0)) hover.autoreverses = true hover.duration = 0.2 hover.repeatCount = Float(Int.max) button.layer.addAnimation(hover, forKey: "myHoverAnimation")