• IOS转场动画Quartz Core的Core Animation函数包


    创建转场

    你所要创建的转场是CATransition对象,这种对象属于Quartz Core的Core Animation函数包。一个动画中包含了多种属性,比如计时函数、动画类型以及持续时长等。要创建一个动画,需要调用这个类的animation方法。如下例所示:

    1. #import <QuartzCore/CAAnimation.h> 
    2. CATransition *myTransition = [ CATransition animation ]; 

    计时函数

    计时函数决定了动画在从头到尾执行时的流畅程度。同一个动画可以用不同的速度来执行。例如,页面翻转动画可以开始的时候比较慢,然后在动画快结束时加速,也可以反过来。表3-4这些计时函数都可以用在你的动画当中。

    表3-4

    计    时

    描    述

    UIViewAnimationCurveEaseInOut

    在动画的开头和结尾比较慢

    UIViewAnimationCurveEaseIn

    开始慢,然后加速

    UIViewAnimationCurveEaseOut

    在动画的结尾慢下来

    UIViewAnimationCurveLinear

    整个过程中速度不变

    可以通过设置动画的timingFunction属性来指定计时函数:

    1. myTransition.timingFunction = UIViewAnimationCurveEaseInOut; 

    动画类型

    动画类型定义了动画的绘制方式。每个动画都有一个类型和一个子类型。动画的类型定义了转场的整体行为,而子类型则定义细节,如转换的方向等。

    苹果公司限制了开发者访问SDK中可用的动画,所以你无法在你自己的代码中加入在苹果公司的预置程序中见到的全部功能。SDK支持表3-5动画中的类型。

    表3-5

    动 画 类 型

    描    述

    kCATransitionFade

    从一个视图淡入淡出到下一个视图

    kCATransitionMoveIn

    将新视图移入,覆盖旧视图

    kCATransitionPush

    推出旧视图,引入新视图

    kCATransitionReveal

    移出旧视图,露出新视图


    SDK还支持表3-6中的动画子类型。

    表3-6

    动画子类型

    描    述

    kCATransitionFromRight

    新视图从右侧滑入

    kCATransitionFromLeft

    新视图从左侧滑入

    kCATransitionFromTop

    新视图从顶部滑入

    kCATransitionFromBottom

    新视图从底部滑入


    通过指定转场的type和subtype属性,可以设置类型和子类型:

    1. myTransition.type = kCATransitionPush;  
    2. myTransition.subtype = kCATransitionFromLeft; 

    持续时长

    默认情况下,动画被设置了一个标准持续时长,令其以通常的速度运行。对大多数动画来说,这个时长一般是0.3秒。如果你希望对动画提速或降速,可以通过调整转场的duration属性来手工设置持续时长:

      1. myTransition.duration = 0.3;
  • 相关阅读:
    前端面试题目汇总摘录(HTML 和 CSS篇)
    The Road to learn React书籍学习笔记(第三章)
    The Road to learn React书籍学习笔记(第二章)
    算法复习:动态规划
    算法复习:回溯法
    算法复习:图
    算法复习:二叉树专题
    算法复习:最短路Dijkstra
    算法复习:BFS与DFS
    算法复习:标记数组 / 数组
  • 原文地址:https://www.cnblogs.com/tx8899/p/2537085.html
Copyright © 2020-2023  润新知