うるおいらんど

アプリ開発やサイト制作のメモとか。

【Swift 3】UINavigationControllerを用いた画面遷移のアニメーション変更【CATransition】

魚ライン
魚ライン

どもども
以前書いた「【Swift 3】UIPageViewControllerとUINavigationControllerを使ってスワイプで画面切り替えをしよう」の続きのような続きじゃないような感じの記事になります。

UINavigationControllerを用いると画面遷移のアニメーションはスライドして切り替わるやつになります。pushかな。

 

このアニメーションをフェードなどの別のアニメーションに変更します。

 

UINavigationControllerのカスタムクラスを作ろう

前の記事で書いてることは割愛させていただきます。

pushのアニメーションを変更する場合はUINavigationControllerのカスタムクラスに以下のように書くとアニメーションを変更できます。

 

popの場合も同様

 

popToRootViewController(animated:)等を使うときも同様です。

 

アニメーションの種類は transition.typeで設定できますが

・Fade
・MoveIn
・Push
・Reveal

の4種類です

 

transition.subtypeはどちら側からアニメーションをするかを設定できます。
こちらも

・FromLeft
・FromRight
・FromTop
・FromBottom

と4種類から設定できます。
durationはアニメーションにかかる時間です。

詳しくはTransition Animationでどうぞ。

 

 

わざわざこんなのを作ったり



カーソルが挙動不審すぎる

 

全部コード載せようと思ったのですが、重要なのは上記コードぐらいですし、ストーリボードも一応使っているのでコードだけで載せるのはなぁと思うのでとりあえず保留。

そのうちgithub使えるようになったらそっちに載せてリンク貼りますね・・・・。

とりあえず今は自分用メモという感じで使おうと思います。

 

オーバーライドしちゃうと全部がそのアニメーションになってしまうので部分的に変えたい場合は条件分岐すると場所によって違うアニメーションができます。

 

 

ではでは。

参考

NavigationControllerの戻るボタンが押された時にアニメーションをさせない -stackoverflow

 

 

魚ライン
モッピー!お金がたまるポイントサイト
魚ライン

Swiftの記事一覧を見る

コメント

コメントは認証制です。詳しくは下記の注意をお読みください。

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

魚ライン 魚ライン