UIViewController的出现和消失动画

来源:互联网 发布:剑灵捏脸数据女 编辑:程序博客网 时间:2024/04/25 01:01


接下来讨论的是没有NavigationController的情况, , 只是单纯的View;

那通常会使用

[self presentViewController:myView animated:YES completion:nil]; 弹出, 加载一个新视图.

[self dismissViewControllerAnimated:YES completion:nil]; 退出当前视图.

下面介绍两种主要方式来设置进出动画:

1. 系统自带, 通过setModalTransitionStype设置.

[myController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];

这样你的viewController就会按照竖直向上的方式(默认方式)弹出或者关闭;

当然系统总共提供四种可供选择:

UIModalTransitionStyleCoverVertical=0, //默认方式,竖向上推 UIModalTransitionStyleFlipHorizontal,  //水平反转 UIModalTransitionStyleCrossDissolve,   //隐出隐现UIModalTransitionStylePartialCurl,     //部分翻页效果

2. 利用CATransition自己制作动画

demo: 实现水滴效果:
CATransition *animation = [CATransition animation]; animation.duration = 1.0; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; animation.type = @"rippleEffect"; //animation.type = kCATransitionPush; animation.subtype = kCATransitionFromLeft; [self.view.window.layer addAnimation:animation forKey:nil]; [self presentModalViewController:nextViewController animated:NO completion:nil];

上述设置了滴水进入效果, 当然你还可以设置其他效果:
通过设置animation.type:
pageCurl       // 向上翻一页(像书页一样) pageUnCurl     // 向下翻一页 rippleEffect   // 滴水效果 suckEffect     // 收缩效果,如一块布被抽走 cube           // 立方体效果翻转 oglFlip 上下翻转效果

也可以是:

kCATransitionFade        // 淡出 kCATransitionMoveIn      // 覆盖kCATransitionPush        // 推出 kCATransitionReveal      // 从底部出现


animation.subType: 主要控制出现的方向, 当然有些因为之前有固定方向设置后会有不同效果, 大家可以自己尝试.

kCATransitionFromRight        // 右边kCATransitionFromLeft         // 左边,  默认方向kCATransitionFromTop          // 上面 kCATransitionFromBottom       // 底部


0 0
原创粉丝点击