Open churabou opened 6 years ago
animator.addAnimations { red.center.x += 100 red.center.x += 200 } animator.startAnimation()
これもスムースに動く。
UIViewのクラスメソッドのanimationの completionはBool型の引数をもつ。
一方で
時間
クラスメソッドではdurationパラメーター UIPropertyAnimatorでは初期化時に指定できる。 0を指定するとデフォルトの時間0.2が適用される。
delay
startAnimation(afterDelay: 0.3)
中断
UIViewのクラスメソッドの
UIView.animate(withDuration: 3, delay: 1, animations: { self.red.center.x += 200 })
これを中断するにはlayerのpresentation()から現在の状態を取得する必要がある。
red.layer.position = red.layer.presentation()!.position red.layer.removeAllAnimations()
他方UIViewPropertyAnimatorでは
animator.pauseAnimation()
これだけ。 Animationするプロパティーが複数あるケースを考えると、 UIViewPropertyAnimatorが便利なのがよくわかる。
結論
これもスムースに動く。
UIViewのクラスメソッドのanimationの completionはBool型の引数をもつ。
一方で
時間
クラスメソッドではdurationパラメーター UIPropertyAnimatorでは初期化時に指定できる。 0を指定するとデフォルトの時間0.2が適用される。
delay
startAnimation(afterDelay: 0.3)
中断
UIViewのクラスメソッドの
これを中断するにはlayerのpresentation()から現在の状態を取得する必要がある。
他方UIViewPropertyAnimatorでは
これだけ。 Animationするプロパティーが複数あるケースを考えると、 UIViewPropertyAnimatorが便利なのがよくわかる。
結論