#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. highcharts 阶梯图表并填充颜色(自己觉得:直角折线图表)

    例如以下:普通阶梯图 $(function () { $('#container').highcharts({         title: {         text: '普通阶梯图'       ...

  2. JXL.jar简单封装Excel读写操作

    1.分析 一个excel文件能够有多页,每页excel中能够有多行,每行中能够有多列.用面向对象的思想能够把一行中的某列看作是一个String对象,一行看作是一个包括多个列的对象.一页是包括多行的对面 ...

  3. Leetcode:signal_number_ii

    一.     题目 给一个数组,当中仅仅有一个数出现一次.其它的数都出现3次,请找出这个数.要求时间复杂度是O(n).空间复杂度O(1). 二.     分析 第一次遇见这种题,真心没思路-.前面的s ...

  4. “此文件来自其他计算机,可能被阻止以帮助保护该计算机” 教你win7解除阻止程序运行怎么操作

    win7 批量解除可执行文件的锁定 "此文件来自其他计算机,可能被阻止以帮助保护该计算机" http://blog.csdn.net/gscsnm/article/details/ ...

  5. 外部事件触发调用对象方法时this指向问题

    问题如下: var obj = { name: 'dang', test:function(){ alert(this.name); } }; obj.test(); //这样是可以的 $('.box ...

  6. Angular:内置指令

    [ngIf]表达式结果为真,显示元素:表达式结果为假,移除元素. <div *ngIf="a > b"></div> [ngSwitch]对表达式进行 ...

  7. NOI2018归程(Kruskal重构树)

    题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 n 个节点.m 条边的无向连通图(节点的编号从 1 至 n). 我们依次用 l,a 描述一条边的长度. ...

  8. web.xml的配置及加载顺序

    一web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> ...

  9. 找不到或无法载入主类 org.jivesoftware.openfire.starter.ServerStarter

    刚接触openfire的配置就出现了这个错误.解决方法非常easy,忘记了将openfire的源文件加入到user entries中了

  10. c3p0的经常使用配置方式

    1:第一种方式很easy c3p0.driverClass=com.mysql.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql://localhost:3308/databas ...