CoreAnimation-05-CABasicAnimation
概述
- 简介
- 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状态,如图

CoreAnimation-05-CABasicAnimation的更多相关文章
- CoreAnimation
CoreAnimation 1.CABasicAnimation // position CABasicAnimation *ba = [CABasicAnimation animationWithK ...
- 【原】iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation【包会】
在上一篇专题文章[原]iOSCoreAnimation动画系列教程(一):CABasicAnimation[包会]中我们学习了iOS核心动画CoreAnimation中CABasicAnimation ...
- Core Animation之CAKeyframeAnimation
在上一篇专题文章中我们学习了iOS核心动画CoreAnimation中CABasicAnimation动画的使用方法.CABasicAnimation已经可以应付一些比较简单的应用场景了,比如view ...
- iOS经常使用类别
我们发现,慢慢积累了很多自己写的各种类别的. .今天,无私.张贴 1.NSDateFomatter @interface NSDateFormatter (MyCategory) + (id)date ...
- CoreAnimation 核心动画 / CABasicAnimation/ CAKeyframeAnimation
- (void)createBaseAnimation{ //基础动画 CABasicAnimation *animation = [CABasicAnimation animation]; anim ...
- iOS关于CoreAnimation动画知识总结
一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了: ...
- CoreAnimation笔记
核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Ani ...
- iOS CoreAnimation详解(一) 有关Layer的动画
以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog. ...
- iOS CoreAnimation 核心动画
一 介绍 一组非常强大的动画处理API 直接作用在CALAyer上,并非UIView(UIView动画) CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类 属性: dura ...
- ios基础篇(二十五)—— Animation动画(UIView、CoreAnimation)
Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIVie ...
随机推荐
- C#中处理耗时任务的几种方式
0.准备 首先,我们先创建几个耗时任务: public class TestTasks { //无参.无返回值任务 public void Task1() { Console.WriteLine(&q ...
- 任督二脉之Shell中的正则表达式
VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyz ...
- JAVA jdbc(数据库连接池)学习笔记(一)
学习内容: 1.JDBC的含义... JDBC想必学过JAVA的就不会陌生,JDBC到底是什么呢?其实就是由JAVA的一些类和接口构成的API,保存在java.sql和javax.sql..包中的一些 ...
- Django--BBS项目
需求 模仿抽屉()和虎嗅()做一个网站bbs 知识点 Django知识: models表字段第一个属性可以用 2 3 from django.contrib.auth.models import Us ...
- 浅谈WeakHashMap
Java WeakHashMap 到底Weak在哪里,它真的很弱吗?WeakHashMap 的适用场景是什么,使用时需要注意些什么?弱引用和强引用对Java GC有什么不同影响?本文将给出清晰而简洁的 ...
- sprint3(第九天)
今天四六级考试,没做什么内容,添加了前台的菜单的图片 燃尽图
- MySQL如何查询两个日期之间的记录
baidu出来的结果多是下面答案:<quote> MySQL中,如何查询两个日期之间的记录,日期所在字段的类型为datetime(0000-00-00 00:00:00) 解决方案: 直接 ...
- WampServer 给电脑搭建apache服务器和php环境
WampServer 给电脑搭建apache服务器和php环境 前端不仅要做页面展示层,还负责着数据交互的部分,不要等到后端人员做好工作了前端才开始对接,那样太被动了. 前端在完成静态页面的编码后,就 ...
- 循序渐进开发WinForm项目(3)--Winform界面层的项目设计
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- 以对象的方式来访问xml数据表(一)
所有实例代码都是以C#演示—— 在将如何以对象的方式来访问xml数据表之前,我们先来谈谈如何用xml文件作为数据库吧! 平时在开发一些小的应用的时候,需要一个数据库,这个时候虽然可以用SQL serv ...