UIViewController 之间的动画切换

两个UIView之间的翻转可以用动画效果翻转(上下,左右)


    UIViewController之间的切换除了UINavigationController里面的pushViewController和 popViewController与UITalbarController在viewControllers之间的切换外, 我们还可以在其他地方自由的进行ViewController切换:


MyViewController *_myViewController = [[MyViewController alloc] init];

_myViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentModalViewController: _myViewController Animated: YES];

[_myViewController release];

 

有四种切换形式(modalTransitionStyle):    

 UIModalTransitionStyleFlipHorizontal  

 UIModalTransitionStyleCoverVertical (default)   

 UIModalTransitionStyleCrossDissolve    

 UIModalTransitionStylePartialCurl
退回方法:[self dismissModalViewControllerAnimated:YES];


与此对应的是播放视频时:

 [self presentMediaPlayerViewController:moviePlayer Animated:YES];

 [self dismissMediaPlayerViewControllerAnimated:YES];

func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval { return 1.0 } func animateTransition(transitionContext: UIViewControllerContextTransitioning) { let containerView = transitionContext.containerView() let fromVC = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey) let toVC = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey) let fromView = transitionContext.viewForKey(UITransitionContextFromViewKey) let toView = transitionContext.viewForKey(UITransitionContextToViewKey) //toView?.frame = containerView.frame containerView.addSubview(toView!) toView?.layer.transform = CATransform3DIdentity toView?.alpha = 0 fromView?.layer.transform = CATransform3DMakeTranslation(-188, 0, 0) if self.presenting { UIView.animateWithDuration(1.0, animations: { () -> Void in // fromView?.layer.transform = CATransform3DMakeTranslation(-160, 0, 0) // fromView?.layer.transform = CATransform3DMakeRotation(CGFloat(M_PI_2), 10, 0, 10) fromView?.layer.transform = CATransform3DRotate(CATransform3DMakeTranslation(-188, 0, 0), CGFloat(M_PI_2), 0, 10, 0) toView?.alpha = 1.0 }, completion: { (finished) -> Void in fromView?.layer.transform = CATransform3DIdentity transitionContext.completeTransition(true) }) // if self.presenting { // fromView?.addAnimation(presenting) // UIView.animateWithDuration(1.0, animations: { () -> Void in // toView?.alpha = 1.0 // }, completion: { (finished) -> Void in // transitionContext.completeTransition(true) // }) // UIView.animateWithDuration(transitionDuration(transitionContext), animations: { () -> Void in // var trans = CGAffineTransformMake(0.1, CGFloat(M_PI_2), CGFloat(M_PI_2), 0.1, -width/2, height/2) // var trans1 = CGAffineTransformMakeScale(0.1, 0.1) // var trans2 = CGAffineTransformMakeRotation(CGFloat(M_PI_2)) // var trans3 = CGAffineTransformMakeTranslation(-width/2, height/2) // fromView?.transform = trans2 // fromView?.alpha = 0 // toView?.alpha = 1 // }) { (finished) -> Void in // if finished { // fromView?.transform = CGAffineTransformIdentity // transitionContext.completeTransition(true) // } // } // } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值