每一个界面切换到另一个界面,都是不同场景之前的转换,场景的转换用的就是转场动画
自定义转场:
- 设置自定义转场
playerVC.modalPresentationStyle = UIModalPresentationCustom;
1234567/**系统转场效果*当从A场景过度到B场景,A场景消失,B场景会加到一个容器View中(UITransitionView)*/// (设置系统自带转场)修改转场动画的动画效果playerVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
|
|
- 通过代理设置如何进行自定义转场
playerVC.transitioningDelegate = self; [self presentViewController:playerVC animated:YES completion:nil];
- 实现代理方法
<UIViewControllerTransitioningDelegate>的代理方法,代码中会详细说明
UIViewControllerTransitioningDelegate
其他代码在Demo中提现,需要注意如下几点:
- B控制器旋转出来时anchorPoint必须在设置frame之前设置
- 当转场动画方法执行完之后,必须调用此方法[transitionContext completeTransition:YES];,否则B控制器将无法监听任何事件
- 其他具体代码看Demo