UIViewPropertyAnimatorで実現するリッチなアニメーション表現 @hedjirog #iosdc #d

https://fortee.jp/iosdc-japan-2018/proposal/5a1a99cb-9b59-4d94-a655-49ffe3e7b91b UIKitのアニメーション表現は、UIViewPropertyAnimatorの登場により自由度が向上しました。UIViewPropertyAnimatorを画面遷移のアニメーションに応用することで、インタラクティブなアニメーションが実現できるだけでなく、複数のアニメーションを連動させることも可能となります。このトークでは、UIViewPropertyAnimatorを利用した画面遷移のアニメーションの実装例をご紹介しします。
0
にわタコ @niwatako

hedjirog/CustomPresentation: Custom presentation using UIViewPropertyAnimator github.com/hedjirog/Custo… #iosdc #d

2018-09-02 14:44:10
にわタコ @niwatako

複数の UIViewPropertyAnimator を連動する。WWDC 2017 Session 230 で紹介された手法に改良を加え実装を試したもの。 #iosdc #d

2018-09-02 14:46:52
まりーな @marina10172013

リッチアニメーションきになる #iOSDC #d

2018-09-02 14:47:58
Kento Nagata @ngtknt

UIViewPropertyAnimator 色々できる。インタラクティブも対応できる。 #iosdc #d

2018-09-02 14:49:48
にわタコ @niwatako

UIPresentationController 表示のされ方 コンテナを持つ。遷移先と遷移元の間に入り込んでカスタムViewを入れたりすることができる UIViewControllerAnimatedTransitioning アニメーション UIViewControllerInteractiveTransitioning インタラクティブにするためのプロトコル #iosdc #d

2018-09-02 14:51:52
にわタコ @niwatako

アニメーションを、viewを保持するcontrollerで定義可能にする 独自プロトコルを定義してそれを返してアニメーションを集約する。遷移先遷移元、PresentationControllerにもプロトコルに準拠。 大事なのは、トランジションに関係するAnimatorを返すようにしているところ。 #iosdc #d

2018-09-02 14:54:38
にわタコ @niwatako

ジェスチャもどのビューに対してジェスチャーを付与するかを考える時に遷移先遷移元でビュー構造を知らなくてもいいようにViewContollerでジェスチャーを定義してうまく集約するということをしている #iosdc #d

2018-09-02 14:55:15
にわタコ @niwatako

ココまで来て画面遷移全体ではプロトコルに準拠していることを保証する必要がある。 PresentationControllerのイニシャライザを工夫する。遷移先、遷移元を受け取り、それぞれがプロトコルに準拠していることを要求するようなイニシャライザ。 #iosdc #d

2018-09-02 14:56:34
あんのたん® @ANNotunzdY2

以前サイドメニューを実装した時を思い出した #iosdc #d

2018-09-02 14:57:28
まりーな @marina10172013

サンプルコード上げて頂いてるのありがたい github.com/hedjirog/Custo… #iOSDC #d

2018-09-02 15:02:16
にわタコ @niwatako

Q: presentとdismissそれぞれアニメーションを実装すると、ユーザーがスライド仕掛けてキャンセルした時の制御が難しかったことがある。 A: InteractionController内で50%以下ならキャンセルするということをしています。Reversedで逆再生されるはず。 #iosdc #d

2018-09-02 15:04:13
Jiro @jiro_ngsm

UIViewPropertyAnimatorを利用した画面遷移の発表内容です! #iosdc #d speakerdeck.com/hedjirog/uivie…

2018-09-02 15:18:21