Это код, который я использую для анимации моего CAShapeLayer
:
_progressBarLayer.strokeEnd = CGFloat(_progressToDrawForProgress(progress))
let progressAnimation = CABasicAnimation(keyPath: "strokeEnd")
progressAnimation.duration = CFTimeInterval(1.0)
progressAnimation.fromValue = CGFloat(self.progress)
progressAnimation.toValue = _progressBarLayer.strokeEnd
progressAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn)
_progressBarLayer.addAnimation(progressAnimation, forKey: "progressAnimation")
Я протестировал использование делегата, чтобы увидеть, воспроизводится ли анимация, и она воспроизводится. Ведение журнала начинается и останавливается в нужном месте.
Этот код находится в функции setProgress(progress: CGFloat, animated: Bool)
и выполняется, если анимация имеет значение true.
Есть ли здесь что-то явное?
CAShapeLayer
свойство - person Adam Carter   schedule 15.03.2015