【转】objective-C 中两种实现动画的方法

本文介绍两种iOS动画实现方法,包括UIView动画和Core Animation过渡动画。提供了具体的代码示例,并解释了不同类型动画效果的区别。

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

第一种方法:

[UIView beginAnimations:@"Curl"context:nil];//动画开始  
[UIView setAnimationDuration:1.25];//动画持续时间  
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//动画速度  
[UIView setAnimationTransition: UIViewAnimationTransitionCurlUp//类型  
                       forView:self.view  
                         cache:YES];  
[UIView setAnimationDelegate:self];//添加委托

[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];// 实现回调

[UIView commitAnimations];  

第二种方法:

CATransition *animation = [CATransition animation];   
[animation setDuration:1.25f];   
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];  
[animation setType:kCATransitionReveal];  
[animation setSubtype: kCATransitionFromBottom];  
[self.view.layer addAnimation:animation forKey:@"Reveal"];  

setType:可以返回四种类型:

1. kCATransitionFade淡出

2. kCATransitionMoveIn覆盖原图

3. kCATransitionPush推出

4. kCATransitionReveal底部显出来

 

setSubtype:也可以有四种类型:

1. kCATransitionFromRight;

2. kCATransitionFromLeft(默认值)

3. kCATransitionFromTop;

4. kCATransitionFromBottom

还有一种设置动画类型的方法,不用setSubtype,只用setTyp

  1. [animation setType:@"suckEffect"];  

注意:

在浪费了很多Time和耐心后,测试出仅仅以下类型现在是可用的:

suckEffect(三角)

rippleEffect(水波抖动)

pageCurl(上翻页)

pageUnCurl(下翻页)

oglFlip(上下翻转)

cameraIris/cameraIrisHollowOpen/cameraIrisHollowClose  (镜头快门,这一组动画是有效果,只是很难看,不建议使用

而以下为则黑名单:

spewEffect: 新版面在屏幕下方中间位置被释放出来覆盖旧版面.

- genieEffect: 旧版面在屏幕左下方或右下方被吸走, 显示出下面的新版面 (阿拉丁灯神?).

- unGenieEffect: 新版面在屏幕左下方或右下方被释放出来覆盖旧版面.

- twist: 版面以水平方向像龙卷风式转出来.

- tubey: 版面垂直附有弹性的转出来.

- swirl: 旧版面360度旋转并淡出, 显示出新版面.

- charminUltra: 旧版面淡出并显示新版面.

- zoomyIn: 新版面由小放大走到前面, 旧版面放大由前面消失.

- zoomyOut: 新版面屏幕外面缩放出现, 旧版面缩小消失.

- oglApplicationSuspend: 像按"home" 按钮的效果.

还有:mapCurl,mapUnCurl

参考:http://hi.baidu.com/jj89757hhb/item/a5108a80e078d45b26ebd9f3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值