zoukankan      html  css  js  c++  java
  • OC

    概述


    • 简介

      • CABasicAnimation是抽象类CAPropertyAnimation的子类,可以直接使用
      • CABasicAnimation又称基本动画,从fromValue到toValue按照指定的动画属性执行动画
    • 注意事项

      • 一个动画对象可以同时添加到多个图层上
      • 对动画的配置必须放在动画添加到图层之前,否则不会呈现指定的动画效果

    基本动画常用的属性


    • CABasicAnimation的属性

      • fromValue(id),执行动画属性的起始值。若不指定,则以该属性当前的值作为fromValue
      • toValue(id),执行动画属性的目的值
      • byValue(id),步进值
    • CAMediaTiming协议的属性

      • duration(CFTimeInterval),单次动画的执行时间
      • repeatCount(float),重复次数
      • autoreverses(BOOL),是否恢复到动画开始状态(以动画的方式)

    基本动画的执行步骤


    • 创建CABasicAnimation动画对象
    • 指定执行动画的keyPath属性
    • 设置动画起始值与目的值
    • 配置动画的其他属性
    • 将动画添加到要执行动画的图层上

    通过基本动画模拟心跳


    • 实现步骤

      • 通过storyboard创建需要执行动画的控件,并拥有它们

        @property (weak, nonatomic) IBOutlet UIView *redView;
        @property (weak, nonatomic) IBOutlet UIImageView *imageView;
      • 添加动画

        - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
        {
        	//创建基本动画属性
        	CABasicAnimation *animation = [CABasicAnimation animation];
        	//指定执行动画的keyPath属性
        	animation.keyPath = @"transform.scale";
        	//设置动画的起始值与目的值
        	animation.fromValue = @1.0;
        	animation.toValue = @0.8;
        
        	/****配置动画的行为****/
        	//以动画的方式回复到fromValue
        	animation.autoreverses = YES;
        	//单次动画的执行时间,据说每分钟心跳72次
        	animation.duration = 60 / 72;
        	//动画的重复次数
        	animation.repeatCount = MAXFLOAT;
        	//取消动画反弹效果
        	animation.removedOnCompletion = NO;
        	animation.fillMode = kCAFillModeForwards;
        
        	//将动画添加到图层上
        	[self.redView.layer addAnimation:animation forKey:nil];
        	[self.imageView.layer addAnimation:animation forKey:nil];
        	}
      • 执行效果如图:

      • 若不设置fromValue值,程序将会有Bug,即多次点击屏幕时动画停止,如图

        • 原因:若不指定fromValue,则以该属性当前的值作为fromValue
      • 若不取消反弹效果,动画结束,会瞬间回到fromValue状态,如图

      • 若指定autoreverses为YES,会以动画方式回到fromValue状态,如图

     
  • 相关阅读:
    Exchange 2007 安装后的一些管理问题2
    几个不同领域的软件厂商。
    【新鲜提取的两款词典中英版DioDict、英英版DioDict牛津词典
    转:分布式 DBA:存储、I/O 和 DB2,第 1 部分(针对在网络存储环境中部署 DB2 数据库的建议)(1)
    脚本:列出windows上已安装的应用程序(使用中发现部分没有vender的应用程序列不出来)
    判断安卓程序是否高危程序。
    转:Target Daemon (tgtd) tgtadm
    转:探索 AIX 6:在 AIX 6 上配置 iSCSI Target
    windows live writer 与博客园
    转:项目管理。
  • 原文地址:https://www.cnblogs.com/funny11/p/4966422.html
Copyright © 2011-2022 走看看