OC - 24.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状态,如图

OC - 24.CABasicAnimation的更多相关文章
- OC动画CABasicAnimation
//1.创建动画 CABasicAnimation *anima=[CABasicAnimation animationWithKeyPath:@"bounds"]; //1.1设 ...
- iOS开发UI篇—核心动画(UIView封装动画)
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...
- ios uiview封装动画(摘录)
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...
- iOS之UIview动画
一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...
- 核心动画(UIView封装动画)
一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...
- 24、JSON与OC互相转化
一. JSON: 1. 01.JSON是一种轻量级的数据格式,一般用于数据交互 02.服务器返回给客户端的数据,一般都是JSON格式活着XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 ...
- OC基础(24)
NSMutableArray基本概念 NSDictionary基本概念 NSMutableDictionary基本概念 常见的结构体 *:first-child { margin-top: 0 !im ...
- OC基础:属性.点语法.KVC 分类: ios学习 OC 2015-06-24 17:24 61人阅读 评论(0) 收藏
属性:快速生成setter和getter 属性也包括:声明和实现 1.属性的声明写在.h中 格式:@property 数据类型 变量名; 如果实例变量一致的时候,属性的声明可以合并,每一个属性之间使用 ...
- 24 (OC)* 加密
一 .MD5加密 MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是 ...
随机推荐
- Android开源项目发现--- 效率开发工具篇(持续更新)
1.Json2Java 根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能 项目地址: ...
- bzoj3437
练一下斜率优化 ..] of int64; q,a,b:..] of longint; i,n,h,t,j:longint; function g(j,k:longint):double; var a ...
- HDU-4974 A simple water problem
http://acm.hdu.edu.cn/showproblem.php?pid=4974 话说是签到题,我也不懂什么是签到题. A simple water problem Time Limit: ...
- loadrunner打不开ie&ie默认浏览器设置方法
loadrunner使用过程中频繁的出现问题,出现次数最多的就是lr打不开ie,或者ie一闪就关闭了,问题出在我默认浏览器的设置上,因为我原先并没有成功设置ie为默认浏览器.这是一个无意识的错误,我以 ...
- 【狼】openGL 光照的学习
小狼学习原创,欢迎批评指正 http://www.cnblogs.com/zhanlang96/p/3859439.html 先上代码 #include "stdafx.h" #i ...
- 《图解密码技术》-chaper1-概述
密码和信息安全常识: (1)不要使用保密的密码算法. (2)不要使用低强度密码算法. (3)密码一定会被破解. (4)密码只是信息安全的一部分.
- STL之map、multimap
map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺序排列.元素的插入过程是按照排序规则 ...
- 整数区间及区间集合(C#实现)
/// <summary> /// 整数区间类 /// </summary> private class Interval { , _end = ; public int St ...
- 青蛙的约会 - poj 1061(扩展欧几里得)
分析:这个东西在数论里面应该叫做不定方程式,可以搜一下,有很精彩的证明,先求出来方程式的一组特解,然后用这组特解来求通解,但是求出来特解之后怎么求这些解里面的最小非负x值?我们知道 x = x0 + ...
- linux —— 学习笔记(用户管理与权限控制)
目录:1.用户的创建和管理 2.组的创建和管理 3.文件执行权限的控制 4.不用密码执行sudo 1.用户的创建和管理 用户的创建和管理: useradd.usermod . userdel . ...