churabou / iOS-develop-blog

0 stars 0 forks source link

UIViewPropertyAnimator #36

Open churabou opened 6 years ago

churabou commented 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が便利なのがよくわかる。

結論