objective-C 中两种实现动画的方法(转)
2015-08-09 14:51
561 查看
转载自:http://wayne173.iteye.com/blog/1250232
第一种方法:
view plain
[UIView beginAnimations:@"Curl"context:nil];//动画开始
[UIView setAnimationDuration:1.25];//动画持续时间
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//动画速度
[UIView setAnimationTransition: UIViewAnimationTransitionCurlUp//类型
forView:self.view
cache:YES];
[UIView commitAnimations];
第二种方法:
view plain
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
view plain
[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
第一种方法:
view plain
[UIView beginAnimations:@"Curl"context:nil];//动画开始
[UIView setAnimationDuration:1.25];//动画持续时间
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//动画速度
[UIView setAnimationTransition: UIViewAnimationTransitionCurlUp//类型
forView:self.view
cache:YES];
[UIView commitAnimations];
第二种方法:
view plain
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
view plain
[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
相关文章推荐
- Objective-C学习笔记_NSString、NSArray、NSNumber
- Python自然语言处理 NLTK包中的 text3.generate() 命令出错 'Text' object has no attribute 'generate'
- 【Objective-C编程开发】关于子类重写父类初始化方法的争论
- iOS开发核心语言Objective C —— 面向对象思维、setter和getter方法及点语法
- objective-c 中 . 运算符详解
- uva 1161 Objective: Berlin (最大流)
- iOS Objective-C 身份证号码校验
- iOS开发(Objective-C)常用库索引
- 代理作用之一代理传值:正向传值
- swift中使用object-c代码
- 黑马程序员--- objective-c 类的继承
- OC语法——Object-C retain、copy、mutableCopy的详细分析
- 从JSONModel看Objective-C的反射机制
- 《Objective-C基础教程》第6章 源文件组织
- [iOS-Swift编程]Method '...' with Objective-C selector '...' 错误的解决方法
- objective-c算法详解(一、链表)
- 每天学点java—Object类
- 《learn objective-c on the Mac for OS X and IOS》<译名>《objective-C基础教程》
- 【Obective-C编程开发】Objective-C之BOOL一清二楚
- 所闻所获4:下拉刷新控件2