たのしい人生

`CAAnimation` で無限ループアニメーションを設定するときは `isRemovedOnCompletion = false` を設定しておかないとアニメーションにアクセス不能になる

let rotation = CABasicAnimation(keyPath: "transform.rotation")
rotation.fromValue = 0.0
rotation.toValue = Double.pi * 2
rotation.duration = 1.0
rotation.repeatCount = .infinity
rotation.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)
rotation.isRemovedOnCompletion = false

こんな感じの無限ループ CAAnimation を設定するときに isRemovedOnCompletion を設定しないと、バックグラウンドから復帰したときにアニメーションが再生されなかったり、 removeAllAnimations() でもアニメが停止できなかったりする。本当にハマるし困る。

cf. Problem with removing forever repeating animation...

Amazon.co.jpアソシエイト