zoukankan      html  css  js  c++  java
  • iOS CoreAnimation 核心动画

    一 介绍  

      一组非常强大的动画处理API

      直接作用在CALAyer上,并非UIView(UIView动画)

      CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类

      

      属性:

        duration:持续时间

        repeatCount:重复次数

        repeatDuration:重复时间

        timingFunction:运行节奏

        keyPath:指定CALayer的某个属性为keyPath,并对CALayer的这个属性值进行修改,达到动画效果

        fillMode:决定当前对象在非active时间段的行为,比如动画开始之前以及结束之后

        beginTime:延迟执行时间 CACurrentMediaTime() + 延迟时间

        removedOnCompletion:动画执行完毕后是否从图层移除

    二 子类介绍

      1. CAMediaTiming: protocol

      2. CAProperyAnimation:不能直接使用,要想创建动画对象,应该使用其子类:CABasicAnimation(基础动画),CAKeyframeAnimation(帧动画)

        1. CABasicAnimation:基础动画

          只能从一个数值(fromValue)变到另一个(toValue)

           使用: 

            一 实例化

              使用方法animationWithKeyPath:对 CABasicAnimation进行实例化,并指定Layer的属性作为关键路径进行注册。

            二 设定动画的属性 

               

          三 设置是否让动画在结束时恢复到初始状态

              只需设置removedOnCompletionfillMode两个属性就可以了。

        //防止动画结束后回到初始状态
        animation.removedOnCompletion = NO;
        animation.fillMode = kCAFillModeBackwards;

           四 添加动画

             使用方法addAnimation将动画实例添加到控件的layer上

          完整代码:

    //实例化,绑定layer的属性作为关键路径进行注册
        CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
        //所改变属性的起始值和结束值
        animation.fromValue = [NSNumber numberWithFloat:1.0f];
        animation.toValue = [NSNumber numberWithFloat:0.0f];
        //动画结束时是否执行逆动画
        animation.autoreverses = YES;
        animation.duration = 0.2;
        animation.repeatCount = 4;
        //设置动画的速度变化 渐进
        animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
        //防止动画结束后回到初始状态
        animation.removedOnCompletion = NO;
        animation.fillMode = kCAFillModeBackwards;
        
        animation.delegate = self;
        //添加动画
        [sender.layer addAnimation:animation forKey:nil];

        2.CAKeyFrameAnimation:关键帧动画

          使用一个NSArray保存这些数值

            values:即NSArray对象,里边元素被称为“关键帧(keyframe)”,动画对象会在指定的时间duration内,一次显示values内的每一个关键帧

            keyTimes:对应关键帧的对应时间点,取值从0-1

            path:让层随路径移动,只对CALayer的anchorPoint和position起作用,若设置path,则values会被忽略

      3.CATransition:转场动画

        实现了将控制器的视图推入屏幕的动画效果

          type:动画类型

          subtype:过渡方向

          startProgress:起点

          endProgress:终点

      4.CAAnimationGroup:组动画

        组中所有动画对象可以同时并发运行

          animations:保存一组动画对象的NSArray

    参考链接:http://www.cnblogs.com/wendingding/p/3801036.html

      

  • 相关阅读:
    Spark 1.1.0 安装测试 (分布式 Yarn-cluster模式)
    HBase Mac OSX 安装笔记
    hbase centOS生产环境配置笔记 (1 NameNode, 1 ResourceManager, 3 DataNode)
    ssh 配置自动登录
    CentOS 修改线程数限制等(limits.conf)
    Hadoop Mac OSX 安装笔记
    centos7安装及部署zabbix监控
    设置linux中Tab键的宽度(可永久设置)
    基于NFS共享存储实现KVM虚拟机动态迁移
    KVM虚拟化平台环境部署
  • 原文地址:https://www.cnblogs.com/roxy/p/5953586.html
Copyright © 2011-2022 走看看