NavigationController 遷移時のアニメーション
通常の画面遷移では、子画面が右から出てくるが
他にアニメーションを行いたい場合
以下の実装を入れる事で、簡単にアニメーションを変更することができる。
// アニメーション作成
CATransition* transition = [CATransitionanimation];
// アニメーション秒数
transition.duration = 0.5;
// アニメーション速度
transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn];
// アニメーションタイプ
transition.type = kCATransitionMoveIn;
// アニメーションサブタイプ
transition.subType = kCATransitionFromRight;
// アニメーションの設定
[self.navigationController.view.layer addAnimation:transition forKey:nil];
// 画面遷移
[self.navigationControllerpushViewController:view animated:NO];
・画面遷移時のアニメーションはNOにする必要があります。
・親画面に戻る(popViewControllerAnimated)の場合でも、同様の設定でアニメーションが可能です。
・画面遷移を行うたびの、同様の設定をする必要があります。
◆アニメーションの速度
- kCAMediaTimingFunctionLinear
一定速度のアニメーション
- kCAMediaTimingFunctionEaseIn
徐々に早くなるアニメーション
- kCAMediaTimingFunctionEaseOut
徐々に遅くなるアニメーション
- kCAMediaTimingFunctionEaseInEaseOut
遅い→早い→遅い の順に速度が変わるアニメーション
- kCAMediaTimingFunctionDefault
標準のアニメーション
◆アニメーションのタイプに指定できる種類は以下のパターンとなります。
- kCATransitionFade
表示中の画面がフェードアウトしながら、次の画面がフェードインする。
- kCATransitionMoveIn
次の画面がスライドしながら表示されます。
アニメーションをsubTypeで調整します。
- kCATransitionPush
次の画面が、表示中の画面を押し出します。
アニメーションをsubTypeで調整します。
- kCATransitionReveal
表示中の画面が幕のようにスライドし、後ろから次の画面が表示されます。
アニメーションをsubTypeで調整します。
◆アニメーションのサブタイプに指定できる種類は以下のパターンとなります。
- kCATransitionFromRight
右からアニメーションを開始させます。
- kCATransitionFromLeft
左からアニメーションを開始させます。
- kCATransitionFromTop
上からアニメーションを開始させます。
- kCATransitionFromBottom
下端からアニメーションを開始させます。