How to delay a CABasicAnimation?
Shouldn't you be using the [CAMediaTiming beginTime]
property (reference)?
See Customizing the Timing of an Animation in the Core Animation Programming Guide.
CABasicAnimation *animation;animation.beginTime = CACurrentMediaTime() + 0.3; //0.3 seconds delay
In Swift 3.0:
func animateYourView () { let myDelay = 5.0 let scalePulseAnimation: CABasicAnimation = CABasicAnimation(keyPath: "transform.scale") scalePulseAnimation.beginTime = CACurrentMediaTime() + myDelay scalePulseAnimation.duration = 0.5 scalePulseAnimation.repeatCount = 2.0 scalePulseAnimation.autoreverses = true scalePulseAnimation.fromValue = 1.0 scalePulseAnimation.toValue = 0.5 myView.layer.add(scalePulseAnimation, forKey: "scale")}
Where the key line for the delay is:
scalePulseAnimation.beginTime = CACurrentMediaTime() + myDelay