J'ai un CABasicAnimation
et je veux le démarrer après un certain délai. Dans UIKit, je peux spécifier des retards. Le protocole CAMediaTiming
a une propriété timeOffset
mais je ne vois aucun effet. Mon prochain essai consiste à utiliser GCD pour le retarder, mais cela semble exagéré.
Ne devriez-vous pas utiliser le [CAMediaTiming beginTime]
propriété ( référence )?
Voir Personnalisation du timing d'une animation dans le Core Animation Programming Guide .
CABasicAnimation *animation;
animation.beginTime = CACurrentMediaTime() + 0.3; //0.3 seconds delay
Dans 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")
}
Où la ligne clé pour le retard est:
scalePulseAnimation.beginTime = CACurrentMediaTime() + myDelay