UIViewController的出现和消失动画


接下来讨论的是没有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       // 底部


已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页