概述


  • 简介

    • 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];
    }
 
分类: CoreAnimation

OC - 27.CATransition的更多相关文章

  1. OC基础:继承.初始化方法,便利构造器 分类: ios学习 OC 2015-06-16 19:27 84人阅读 评论(0) 收藏

    继承: 1.单向继承,一个类只能有一个父类,一个父类可以有多个子类. 2.单向继承,基类(根类)是OSObject 3.子类可以继承父类的属性和方法 当父类的方法不满足子类的需求时,子类可以重写父类的 ...

  2. OC基础(27)

    单例设计模式 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !import ...

  3. OC 面试问题汇总

    OC 问题汇总: 1. 你如何理解 iOS 内存管理   1. new alloc copy retain这些对象我们都要主动的release或者 autorelease   2. 如果是类方法创建的 ...

  4. 关于OC中的小数精确计算---NSDecimalNumber

    NSDecimalNumber 翻译补充自:http://rypress.com/tutorials/objective-c/data-types/nsdecimalnumber 感谢乐于分享的大神 ...

  5. Swift: 比较Swift中闭包传值、OC中的Block传值

    一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...

  6. OC的总结 ***希望对大家有帮助*** ---高小杰

    1.  NSLog           是Foundation提供的一个输出函数,它的功能非常强大,不仅可以输出字符串,还可以输出各种对象,到后面程序还会见到大量的使用NSLog()函数. 2.  N ...

  7. [转]OC与JS的交互详解

    事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...

  8. IOS学习之路--OC的基础知识

    1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...

  9. iOS开发——高级技术OC篇&运行时(Runtime)机制

    运行时(Runtime)机制 本文将会以笔者个人的小小研究为例总结一下关于iOS开发中运行时的使用和常用方法的介绍,关于跟多运行时相关技术请查看笔者之前写的运行时高级用法及相关语法或者查看响应官方文档 ...

随机推荐

  1. R语言 逐步回归分析

    逐步回归分析是以AIC信息统计量为准则,通过选择最小的AIC信息统计量,来达到删除或增加变量的目的. R语言中用于逐步回归分析的函数 step()    drop1()     add1() #1.载 ...

  2. luoguP2266 爱的距离

    题目:http://www.luogu.org/problem/show?pid=2266 题解:感觉题意不清,就去瞅题解了T_T 然后发现好水... 类似于MST,我们把边从小到大加进去就可以了. ...

  3. Node.js权威指南 (10) - Node.js中的错误处理与断言处理

    10.1 使用domain模块处理错误 / 272 10.1.1 domain模块概述 / 272 10.1.2 创建并使用Domain对象 / 274 10.1.3 隐式绑定与显式绑定 / 276 ...

  4. 使用Maven构建Web项目的目录结构

    1.Web项目的目录结构     基于Java的Web项目,标准的打包方式是WAR.与JAR比较,包含更多的内容,比如JSP文件.Servlet.Java类.web.xml配置文件.依赖JAR包.静态 ...

  5. Linux Shell编程(17)——嵌套循环

    嵌套循环就是在一个循环中还有一个循环,内部循环在外部循环体中.在外部循环的每次执行过程中都会触发内部循环,直到内部循环执行结束.外部循环执行了多少次,内部循环就完成多少次.当然,不论是外部循环或内部循 ...

  6. 进程创建函数fork()、vfork() ,以及excel()函数

    一.进程的创建步骤以及创建函数的介绍 1.使用fork()或者vfork()函数创建新的进程 2.条用exec函数族修改创建的进程.使用fork()创建出来的进程是当前进程的完全复制,然而我们创建进程 ...

  7. HDOJ/HDU 2550 百步穿杨(注意排序)

    Problem Description 时维九月,序属三秋,辽军大举进攻MCA山,战场上两军正交锋.辽军统帅是名噪一时的耶律-James,而MCA方则是派出了传统武将中草药123.双方经过协商,约定在 ...

  8. 在word 2013中输入latex公式

    注意:版权所有,转载请注明出处 向word输入LaTeX公式,插件有很多,前面在使用的是一个叫做Aurora的插件,结果不是免费的,用了一段时间就要收费是,所以就不用了,从网上找到别人的介绍,可以使用 ...

  9. UVa1606 UVaLive3259 FZU1309 HDU1661 POJ2280 ZOJ2390 Amphiphilic Carbon Molecules

    填坑系列 考虑所有经过两个点的直线,一定有最优解. 再考虑确定一个点,按极角顺序枚举所有直线,从而O(1)转移信息. 还有代码实现技巧 #include<cstdio> #include& ...

  10. [notes] ImageNet Classification with Deep Convolutional Neual Network

    Paper: ImageNet Classification with Deep Convolutional Neual Network Achievements: The model address ...