How to delay a CABasicAnimation? How to delay a CABasicAnimation? ios ios

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