UIViewController的出现和消失动画

本文深入探讨了iOS应用中使用视图控制器进行动画与过渡的方法,包括系统自带的过渡样式设置和自定义动画实现,提供了丰富的示例与解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值