Swift NSValue.valueWithCGRect
This will compile:
let rect = CGRect(x: 0,y: 0,width: 1,height: 1)let val = NSValue(CGRect: rect)
This is "initializer syntax"
Here's my solution:
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")}
In 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")