In this video tutorial, you'll create spring animations for your layers.
This is a companion discussion topic for the original entry at https://www.raywenderlich.com/3270-intermediate-ios-animation/lessons/7
In this video tutorial, you'll create spring animations for your layers.
There is an issue in the starter project for this lesson if youโre running it on Swift 3
on line 190 ViewController extension needs to be implement CAAnimationDelegate protocol. You also needs to remove the override for animationDidStop so you end up with this:
extension ViewController: CAAnimationDelegate {
func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
guard let name = anim.value(forKey: "name") as? String,
let layer = anim.value(forKey: "layer") as? CALayer else {
return
}
if name == "form" {
let bounce = CABasicAnimation(keyPath: "transform.scale")
bounce.fromValue = 1.2
bounce.toValue = 1.0
bounce.duration = 0.5
layer.add(bounce, forKey: nil)
} else if name == "cloud" {
layer.frame.origin.x = -layer.frame.size.width
delay(seconds: 0.1, completion: {
self.animateCloud(layer)
})
}
}
}
also change all the delegates for your animation to self instead of self as! CAAnimationDelegate
This should happen on line 180 for cloudMove and flyRight
indeed the code in these projects isnโt iOS10 compatible, but an update for this course is in the works: https://videos.raywenderlich.com/schedule