Dismiss
效果:
接着使用上一个代码
http://blog.csdn.net/h1078954008/article/details/49556809
1、新建PresentTransition继承NSObject,并在.h中遵守UIViewControllerAnimatedTransitioning协议。
2、实现协议的两个方法,并在其中编写 Push 的动画。类似Present,只需要修改少量代码:
// 返回动画的时间
- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext{
return 0.8;
}
- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext{
ViewController * fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
SecondViewController * toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView * container = [transitionContext containerView];
[container addSubview:toVC.view];
[container bringSubviewToFront:fromVC.view];
// 改变m34
CATransform3D transfrom = CATransform3DIdentity;
transfrom.m34 = -0.002;
container.layer.sublayerTransform = transfrom;
// 设置archPoint和position
CGRect initalFrame = [transitionContext initialFrameForViewController:fromVC];
toVC.view.frame = initalFrame;
fromVC.view.frame = initalFrame;
fromVC.view.layer.anchorPoint = CGPointMake(0, 0.5);
fromVC.view