iOS7新特性 ViewController转场切换(一) 以前总结和关键API介绍(转)

z  @在iOS7之前,View Controller的切换主要有4种:

1.Push/Pop,NavigationViewController

2. Present and dismis Modal

3. UITabBarController

4. addChildViewController(一般用于自定义的继承于 UIViewController 的容器子类)

iOS5,调用- (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(5_0);

(1)前面3种方法这里就不多说了,很常见的系统方法.至于第四种,我在前面文章-剖析网易标签栏的效果中已经做了阐述,但是它提供的容器转场动画只可以实现一些简单的UIView动画,但是难以重用,耦合高.

(2)关键的API:

A.动画控制器 (Animation Controllers) 遵从 UIViewControllerAnimatedTransitioning 协议,并且负责实际执行动画。

B.交互控制器 (Interaction Controllers) 通过遵从 UIViewControllerInteractiveTransitioning 协议来控制可交互式的转场。

C.转场代理 (Transitioning Delegates) 根据不同的转场类型方便的提供需要的动画控制器和交互控制器。

其中UINavigationControllerDelegate delegate 中新增了2个方法给NavigationController

UIViewControllerTransitioningDelegate 新增transitioningDelegate  给Modal的Present和Dismis

UITabBarControllerDelegate  delegate

- (id )tabBarController:(UITabBarController *)tabBarController

interactionControllerForAnimationController: (id )animationController NS_AVAILABLE_IOS(7_0);

- (id )tabBarController:(UITabBarController *)tabBarController

animationControllerForTransitionFromViewController:(UIViewController *)fromVC

toViewController:(UIViewController *)toVC  NS_AVAILABLE_IOS(7_0);

D.转场上下文 (Transitioning Contexts) 定义了转场时需要的元数据,比如在转场过程中所参与的视图控制器和视图的相关属性。 转场上下文对象遵从 UIViewControllerContextTransitioning 协议,并且这是由系统负责生成和提供的。

E.转场协调器(Transition Coordinators) 可以在运行转场动画时,并行的运行其他动画。 转场协调器遵从 UIViewControllerTransitionCoordinator 协议。

(3)新的API主要提供了2种VC切换的方式:

A.非交互式切换,即定义一种从一个VC到另一个VC的动画效果,切换的时候自动播放,

B.交互式切换,这种方式同样需要定义动画效果,只是这个动画效果会根据跟随交互式手势来切换VC并同时播放动画效果。iOS7提供了一个默认的基于百分比的动画实现 UIPercentDrivenInteractiveTransition,而且根据WWDC的说明,最简单的实现交互式动画的方法就是通过继承 UIPercentDrivenInteractiveTransition。

iOS7新特性 ViewController转场切换(一) 以前总结和关键API介绍(转)_第1张图片

原文:http://blog.csdn.net/hmt20130412/article/details/39079905

你可能感兴趣的:(iOS7新特性 ViewController转场切换(一) 以前总结和关键API介绍(转))