zoukankan      html  css  js  c++  java
  • CAAnimation

    序言

    CAAnimation是一个抽象类,遵循了CAMediaTiming协议和CAAction协议!我们不要直接使用CAAnimation类,而是使用其子类:

    • CATransition:提供渐变效果,如推拉push效果,消退fade效果,揭开reveal效果
    • CAAnimationGroup:允许多个动画同时播放
    • CABasicAnimation: 提供了对单一动画的实现
    • CAKeyframeAnimation: 关键桢动画,可以定义动画路线
    • CAPropertyAnimation:属性动画,通常不直接使用,而是使用CABasicAnimation子类

    创建对象

    我们看到有一个工厂方法来创建CAAnimation对象,因此,我们通常都使用这个方法来创建动画:

    当然不同类型的子类使用的方法不一样,对于继承于CAPropertyAnimation的子类,都可以通过属性路径来创建:

    遵守了CAMediaTiming协议

    这个协议是是用于配置动画的相关属性的,英文部分是官方的注释,中文部分为笔者的理解,下面一一讲解:

    遵守了CAAction协议

    这个协议只有一个方法,我们可以调用此方法来触发指定的事件,这样接收者就可以接收到代理。

    CAAnimationDelegate代理

    CAAnimation为这么个属性:

    我们只要指定了代理,就可以实现这两个代理方法:

    removedOnCompletion属性

    当我们动画完成时,如果希望动画就自动移除的话,我们可以设置此属性为YES,默认值为YES。如果我们想要循环或者执行多次动画,就将此属性设置为NO

    timingFunction属性

    这个属性是用于指定动画移动的步调是什么样式,比如线性。

    关于CAMediaTimingFunction类,主要是这向个方法。当创建时,我们+functionWithName:工厂方法来创建系统已经提供的样式。

    其中这个name有这几个变量对应的:

    如果我们想要让其移动动画是按贝塞尔曲线的路径行动,那么可以用这两个方法来创建:

  • 相关阅读:
    POJ 题目2750 Potted Flower(线段树求环型区间中连续区间的最大和)
    即使没人看我们也要坚持写Blog
    鸟哥的Linux私房菜-----7、硬件管理
    android createbitmap函数内存溢出,求解怎样进行处理out of memory溢出问题
    hdu4614Vases and Flowers 线段树
    安装npm及cnpm(Windows)
    安装npm及cnpm(Windows)
    安装npm及cnpm(Windows)
    Echarts设置点击事件
    Vs Code中炫酷写代码插件Power Mode的安装配置
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/5339660.html
Copyright © 2011-2022 走看看