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