概述


  • 简介

    • 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-08-CATransition的更多相关文章

  1. CoreAnimation confusion: CATransaction vs CATransition vs CAAnimationGroup?

    http://stackoverflow.com/questions/14042755/coreanimation-confusion-catransaction-vs-catransition-vs ...

  2. iOS CoreAnimation 核心动画

    一 介绍 一组非常强大的动画处理API 直接作用在CALAyer上,并非UIView(UIView动画) CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类 属性: dura ...

  3. iOS关于CoreAnimation动画知识总结

    一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了: ...

  4. CoreAnimation笔记

    核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Ani ...

  5. 第二十九篇、CoreAnimation的使用

    使用的的三个步骤 1.初始化演员 2.设置好剧情 3.播放 主要类: CALayer // 绘图部分 CABaseAnimation // 基本动画(缩放,移动) CAKeyframeAnimatio ...

  6. CoreAnimation

    CoreAnimation 1.CABasicAnimation // position CABasicAnimation *ba = [CABasicAnimation animationWithK ...

  7. OC - 27.CATransition

    概述 简介 CATransition又称转场动画,是CAAnimation的子类,可以直接使用 转场动画主要用于为图层提供移入/移出屏幕的动画效果 转场动画常见的应用是UINavigationCont ...

  8. ios之CoreAnimation

    CoreAnimation的好处: 1.高性能,简单的编程模块 2.像View一样,使用层级结构来构建负责的界面 3.轻量级数据结构,能使上百个动画同时执行 4.抽象的动画接口,允许动画在一个独立的线 ...

  9. 16 (OC)* UIAnimation和CoreAnimation

    目录 一 Core Animation 二 核心动画 2.1 基础动画 2.2 关键帧动画 2.3 动画组 2.4 转场动画 2.5 逐帧动画 三 UIView动画封装 3.1 基础动画 3.2 弹簧 ...

  10. CATransition自定义转场动画

    我们可以通过CATransiton来自定义一些漂亮的转场动画, CATransition继承自CAAnimation, 所以用法跟CAAnimation差不多 先直接上一个代码: #import &q ...

随机推荐

  1. 红黑树(三)之 Linux内核中红黑树的经典实现

    概要 前面分别介绍了红黑树的理论知识 以及 通过C语言实现了红黑树.本章继续会红黑树进行介绍,下面将Linux 内核中的红黑树单独移植出来进行测试验证.若读者对红黑树的理论知识不熟悉,建立先学习红黑树 ...

  2. JAVA jdbc(数据库连接池)学习笔记(一)

    学习内容: 1.JDBC的含义... JDBC想必学过JAVA的就不会陌生,JDBC到底是什么呢?其实就是由JAVA的一些类和接口构成的API,保存在java.sql和javax.sql..包中的一些 ...

  3. C#序列化JSON

    public static string ConvertToJsonString<T>(T instance) {             using (MemoryStream stre ...

  4. codevs4247奇特的生物 解析报告

    4247 奇特的生物 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 科学家们最近发现了一种奇怪的生物,它们每天长大一岁 ...

  5. dos系统

    实验一  命令解释程序的编写 一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS,UNIX的命 ...

  6. Winform开发框架之字典管理模块的更新,附上最新2013年全国最新县及县以上行政区划代码sql脚本

    在很多项目里面,字典管理是必备的项目模块,而这个又是比较通用的功能,因此可以单独做成一个通用字典管理,例如这个模块,可以通过集成的方式,使用在我的<Winform开发框架>.<WCF ...

  7. Python基础:数值(布尔型、整型、长整型、浮点型、复数)

    一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...

  8. macbook 我们需要买吗

    能否写出好代码与是否使用“好”的电脑是没有直接关系的.

  9. ASP.NET MVC进阶二

    一.数据验证 数据验证的步骤 在模型类中添加与验证相关的特性标记 在客户端导入与验证相关的js文件和css文件 使用与验证相关的Html辅助方法 在服务器端判断是否通过服务器端验证 常用的验证标记 R ...

  10. 容器---List和AbstractList

    一.前言 前面我们介绍了Collection及其抽象实现,在JAVA的容器体系里,由Collection派生出来的有两大体系,即List和Map.本文以及后续文章将重点分析List体系.本文将重点分析 ...