OC - 27.CATransition
概述
简介
- CATransition又称转场动画,是CAAnimation的子类,可以直接使用
- 转场动画主要用于为图层提供移入/移出屏幕的动画效果
- 转场动画常见的应用是UINavigationController
注意事项
- 转场动画的默认过渡方式为淡出方式(kCATransitionFade)
可以使用常量形式或字符串形式给转场动画的type属性赋值,如
- kCATransitionPush,常量形式
- @"push",字符串形式
官方文档中只提供了四种转场动画过渡方式的常量,如图

动画的终点值必须大于等于起点值,否则没有动画效果
转场动画常用的属性
- type(NSString *),动画的过渡方式
- subtype(NSString *),动画的过渡方向
- startProgress(float),动画起点,取值范围为0~1,表示在整个动画中的比例
- endProgress(float)动画终点,取值范围为0~1,表示在整个动画中的比例
转场动画的过渡方式
fade
- 交叉淡化过渡
- 不支持过渡方向
- 对应的常量为kCATransitionFade
push
- 新视图把旧视图推出去
- 对应的常量为kCATransitionPush
moveIn
- 新视图移到旧视图上面
- 对应的常量为kCATransitionMoveIn
reveal
- 将旧视图移开显示下边的新视图
- 对应的常量为kCATransitionReveal
cube
- 立方体反转效果
oglFlip
- 上下左右反转效果
suckEffect
- 收缩效果,如一块布被抽走
- 不支持过渡方向
rippleEffect
- 滴水效果
- 不支持过渡方向
pageCurl
- 向上翻页效果
pageUnCurl
- 向下翻页效果
cameraIrisHollowOpen
- 相机镜头打开效果
- 不支持过渡方向
cameraIrisHollowClose
- 相机镜头关闭效果
- 不支持过渡方向
转场动画的过渡方向
- kCATransitionFromRight,右
- kCATransitionFromLeft,左
- kCATransitionFromTop,上
- kCATransitionFromBottom,下
示例
效果图

实现步骤
- 通过storyboard创建UIImageView控件,并拥有它
@property (weak, nonatomic) IBOutlet UIImageView *imageView;- 更改imageView的image属性
//点击屏幕时,更换图片
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//控制图片循环展示
static NSInteger i = 2;
if (i == 4)
{
i = 1;
} //更换图片
NSString *imageName = [NSString stringWithFormat:@"%zd", i];
self.imageView.image = [UIImage imageNamed:imageName];
i++; //添加动画
[self setupTransition];
}- 实现转场动画代码
- (void)setupTransition
{
CATransition *animation = [CATransition animation]; //设置动画的过渡方式
animation.type = @"oglFlip";
//设置动画的过渡方向
animation.subtype = kCATransitionFromRight;
//设置动画时长
animation.duration = 0.5; //将动画添加到图层上
[self.imageView.layer addAnimation:animation forKey:nil];
}
OC - 27.CATransition的更多相关文章
- OC基础:继承.初始化方法,便利构造器 分类: ios学习 OC 2015-06-16 19:27 84人阅读 评论(0) 收藏
继承: 1.单向继承,一个类只能有一个父类,一个父类可以有多个子类. 2.单向继承,基类(根类)是OSObject 3.子类可以继承父类的属性和方法 当父类的方法不满足子类的需求时,子类可以重写父类的 ...
- OC基础(27)
单例设计模式 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !import ...
- OC 面试问题汇总
OC 问题汇总: 1. 你如何理解 iOS 内存管理 1. new alloc copy retain这些对象我们都要主动的release或者 autorelease 2. 如果是类方法创建的 ...
- 关于OC中的小数精确计算---NSDecimalNumber
NSDecimalNumber 翻译补充自:http://rypress.com/tutorials/objective-c/data-types/nsdecimalnumber 感谢乐于分享的大神 ...
- Swift: 比较Swift中闭包传值、OC中的Block传值
一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...
- OC的总结 ***希望对大家有帮助*** ---高小杰
1. NSLog 是Foundation提供的一个输出函数,它的功能非常强大,不仅可以输出字符串,还可以输出各种对象,到后面程序还会见到大量的使用NSLog()函数. 2. N ...
- [转]OC与JS的交互详解
事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...
- IOS学习之路--OC的基础知识
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...
- iOS开发——高级技术OC篇&运行时(Runtime)机制
运行时(Runtime)机制 本文将会以笔者个人的小小研究为例总结一下关于iOS开发中运行时的使用和常用方法的介绍,关于跟多运行时相关技术请查看笔者之前写的运行时高级用法及相关语法或者查看响应官方文档 ...
随机推荐
- Windows Azure功能更新:SQL Server AlwaysOn和Notification Hub 正式商用
一周以前Windows Azure发布了新的更新内容,主要的更新有3项: 虚拟机上的SQL Server支持AlwaysOn可用性组了 Notification Hub商用 自动缩放支持时间策略 这里 ...
- Rectangle and Square(判断正方形、矩形)
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=42#problem/D 改了N多次之后终于A了,一直在改判断正方形和矩形那,判断 ...
- ASP.NET 中Request.QueryString 中的key
在ASP.net中 的Key是可能为null的,例如在如下的Url中 http://localhost:14546/Home/Index?a 有一个key=null 其value是a,以前一直以为ke ...
- Light OJ 1036 - A Refining Company
题目大意: 一个m*n的矩阵,里面有两种矿物质铀和镭,现在要把铀和镭运送到指定位置.北边是炼镭厂,西边是了炼铀厂. 现在要建立传送带,传送带有两种,一种是从东到西,另一种是从南到北,传送带不能交叉,并 ...
- POJ 2260(ZOJ 1949) Error Correction 一个水题
Description A boolean matrix has the parity property when each row and each column has an even sum, ...
- java 泛型学习
http://blog.csdn.net/archie2010/article/details/6232228 学习集合框架的时候经常用hasmap<Integer,Integer>就是泛 ...
- UVA 10561 Treblecross(博弈论)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32209 [思路] 博弈论. 根据X分布划分禁区,每个可以放置的块为 ...
- mac上的键盘生活——打字训练
我的打字真的很有问题,错误率实在是太高了,于是乎下定决心改掉打字习惯,起码为了对得起我的机械键盘 所谓双击键(shift)就是当一个键钮上有两个字符时的辅助选择键,像标注在数字1上的 !,就是在你 ...
- MHz 和 Mbps的区别
Hz是频率单位,例如10Hz就是表示每秒运算10次 Mbps是Million bit per secend (表示每秒传输的兆位数)=Mb/s MHz 和 Mbps 并不是同一个单位,关键是看bus的 ...
- windows调用ubuntu下的sublimeText2环境搭建
部署需求: windows: windows 7 32 sp1 32位: linux :ubuntu 12.04 LTS 64位: 环境: windows安装:xmanager 4 linux安装:g ...