#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. } -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //1.创建动画对象(设置layer的属性值.)
CABasicAnimation *anim = [CABasicAnimation animation];
//2.设置属性值
anim.keyPath = @"position.x";
anim.toValue = @; //动画完成时, 会自动删除动画
anim.removedOnCompletion = NO;
anim.fillMode = @"forwards"; //3.添加动画:key值是为了区分不同的动画
[self.redView.layer addAnimation:anim forKey:nil]; }

核心动画之作用在层上面.

动画的本质是改图层的某一个属性.

CABasicAnimation *anim = [CABasicAnimation animation];

图层有那些属性,这里才能写那些属性.

anim.keyPath = @"transform.scale";

anim.toValue = @0.5;

告诉动画完成的时候不要移除

anim.removedOnCompletion = NO;

保存动画最前面的效果.也就是最后一个设置的效果

anim.fillMode = kCAFillModeForwards;

把动画添加到层上面.

[_redView.layer addAnimation:anim forKey:nil];

二:心跳效果

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageV; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
} -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //创建动画对象
CABasicAnimation *anim = [CABasicAnimation animation]; //设置属性值
anim.keyPath = @"transform.scale";
anim.toValue = @; //设置动画执行次数
anim.repeatCount = MAXFLOAT; //设置动画执行时长
anim.duration = ; //自动反转(怎么样去 怎么样回来)
anim.autoreverses = YES; //添加动画
[self.imageV.layer addAnimation:anim forKey:nil]; } - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

思路:就是让一张图片做一个放大缩放小的动画.

代码实现:

CABasicAnimation *anim =[CABasicAnimation  animation];

设置缩放属性

anim.keyPath = @"transform.scale";

缩放到最小

anim.toValue = @0;

设置动画执行的次数

anim.repeatCount = MAXFLOAT;

设置动画执行的时长

anim.duration = 0.25;

设置动画自动反转(怎么去, 怎么回)

anim.autoreverses = YES;

添加动画

[self.heartView.layer addAnimation:anim forKey:nil];

ios开发之核心动画四:核心动画-Core Animation--CABasicAnimation基础核心动画的更多相关文章

  1. iOS 核心动画 Core Animation浅谈

    代码地址如下:http://www.demodashi.com/demo/11603.html 前记 关于实现一个iOS动画,如果简单的,我们可以直接调用UIView的代码块来实现,虽然使用UIVie ...

  2. 使用Core Animation对象来实现动画

    转载保留原文地址:http://blog.csdn.net/kqjob/article/details/10417461,转载的 在iOS中如果使用普通的动画则可以使用UIKit提供的动画方式来实现, ...

  3. iOS开发之核心动画(Core Animation)

    1.概述 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架< ...

  4. iOS开发笔记7:Text、UI交互细节、两个动画效果等

    Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...

  5. 核心动画——Core Animation

    一. CALayer (一). CALayer简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比方一个button.一个文本标签.一个文本输入框.一个图标等等.这些都是UIView ...

  6. (转)iOS动画Core Animation

    文章转载:http://blog.sina.com.cn/s/blog_7b9d64af0101b8nh.html 在iOS中动画实现技术主要是:Core Animation. Core Animat ...

  7. CABasicAnimation基础核心动画

    核心动画之作用在层上面.     动画的本质是改图层的某一个属性.     CABasicAnimation *anim = [CABasicAnimation animation];     图层有 ...

  8. iOS Core Animation学习总结(3)--动画的基本类型

    一. CABasicAnimation (基础动画) 移位: CABasicAnimation *animation = [CABasicAnimation animation]; //keyPath ...

  9. IOS中的动画——Core Animation

    一.基础动画 CABasicAnimation //初始化方式 CABasicAnimation * cabase=[CABasicAnimation animation]; //通过keyPath设 ...

随机推荐

  1. Java开发者最经常使用19个Linux命令

    1.查找文件 find / -name filename.txt 依据名称查找/文件夹下的filename.txt文件. 2.查看一个程序是否执行 ps –ef|grep tomcat 查看全部有关t ...

  2. Android仿Win8界面的button点击

    今天没事的时候,感觉Win8的扁平化的button还是挺好看的,就研究了下怎样在安卓界面实现Win8的扁平化button点击效果. 发现了一个自己定义的View能够实现扁平化button效果,话不多说 ...

  3. lighttpd启动不了,libssl.so.4&amp;libcrypto.so.4 缺失

    lighttd的出错日志在 log/out_lighttpd 里,当lighttd启动不了时候,这里文件中会说明原因. 今天的报错是 error while loading shared librar ...

  4. 分析深圳电信的新型HTTP劫持方式

    昨天深圳下了一天的暴雨,2014年的雨水真是够多的. 用户的资源就是金钱,怎的也要好好利用嘛不是? ISP的劫持手段真是花样百出.从曾经的DNS(污染)劫持到后来的共享检測.无不通过劫持正常的请求来达 ...

  5. FragMent-通过Arguments方法 跟activity通信

    今天主要学习下通过Arguments,实现activity 给fragment传递数据.这个方法也是通过参数bundle来进行数据传输的 直接看如下代码 一,定义一个fragment,在oncreat ...

  6. Android NineGridLayout — 仿微信朋友圈和QQ空间的九宫格图片展示自定义控件

    NineGridLayout 一个仿微信朋友圈和QQ空间的九宫格图片展示自定义控件. GitHub:https://github.com/HMY314/NineGridLayout 一.介绍 1.当只 ...

  7. [Javascript AST] 3. Continue: Write ESLint rule

    The rule we want to write is show warning if user using console method: // valid foo.console() conso ...

  8. quartz中的corn表达式(转)

    Quartz的cron表达式 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,可是你须要考虑你月 ...

  9. Python基础教程之第1章 基础知识

    #1.1 安装Python #1.1.1 Windows #1.1.2 Linux和UNIX #1.1.3 Macintosh #1.1.4 其它公布版 #1.1.5 时常关注.保持更新 #1.2 交 ...

  10. GO语言学习(十七)Go 语言类型转换

    Go 语言类型转换 类型转换用于将一种数据类型的变量转换为另外一种类型的变量.Go 语言类型转换基本格式如下: type_name(expression) type_name 为类型,expressi ...