Main.storyboard

ViewController.m

//

//  ViewController.m

//  8A01.核心动画

//

//  Created by huan on 16/2/4.

//  Copyright © 2016年 huanxi. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@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{

//    [self testPositionAnimation];

//    [self testTransformAnimation];//形变属性:平移

//    [self testTransformRotationAnimation];

[self testTransformScaleAnimation];

}

#pragma mark 测试位置的动画

-(void)testPositionAnimation{

//核心动画使用步骤

//1.创建一个动画对象

CABasicAnimation *animation = [CABasicAnimation animation];

//设置动画类型

animation.keyPath = @"position";

//动画执行的“初始状态”

//    animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(100, 100)];

//动画执行的"最终状态"

//    animation.toValue = [NSValue valueWithCGPoint:CGPointMake(100, 250)];

//每次动画执行的“增加值”

animation.byValue = [NSValue valueWithCGPoint:CGPointMake(10, 10)];

//保存动画执行状态

//解决方案2:使动画保存执行之后的状态,只要设置动画的两个属性

animation.removedOnCompletion = NO;// 动画对象不要移除

animation.fillMode = kCAFillModeForwards;//保存当前的状态

//2.往控件的图层添加动画

[self.imageView.layer addAnimation:animation forKey:nil];

}

#pragma mark 测试形变的“平移动画”

-(void)testTransformAnimation{

//1.创建一个动画对象

CABasicAnimation *animation = [CABasicAnimation animation];

//设置动画类型

//    animation.keyPath = @"transform.translation";

animation.keyPath = @"transform.translation.x";

//每次动画执行的“增加值”

//    animation.byValue = [NSValue valueWithCGPoint:CGPointMake(10, 10)];

//byValue的数据类型是 keypath 决定的

animation.byValue = @10;

//保存动画执行状态

//解决方案2:使动画保存执行之后的状态,只要设置动画的两个属性

animation.removedOnCompletion = NO;// 动画对象不要移除

animation.fillMode = kCAFillModeForwards;//保存当前的状态

//2.往控件的图层添加动画

[self.imageView.layer addAnimation:animation forKey:nil];

}

#pragma mark 测试形变的“旋转”的动画

-(void)testTransformRotationAnimation{

//1.创建一个动画对象

CABasicAnimation *animation = [CABasicAnimation animation];

//设置动画类型

animation.keyPath = @"transform.rotation.x";

//byValue的数据类型是 keypath 决定的

animation.byValue = @(M_PI_4);

//保存动画执行状态

//解决方案2:使动画保存执行之后的状态,只要设置动画的两个属性

animation.removedOnCompletion = NO;// 动画对象不要移除

animation.fillMode = kCAFillModeForwards;//保存当前的状态

//2.往控件的图层添加动画

[self.imageView.layer addAnimation:animation forKey:nil];

}

#pragma mark 测试形变的“缩放”的动画

-(void)testTransformScaleAnimation{

//1.创建一个动画对象

CABasicAnimation *animation = [CABasicAnimation animation];

//设置动画类型 ==>>keyPath 设置图层的属性 bounds/position/transform

//    animation.keyPath = @"transform.translation";

//    animation.keyPath = @"transform.scale";

animation.keyPath = @"transform.scale.x";

//设置动画的时间

animation.duration = 3;

//byValue的数据类型是 keypath 决定的

animation.byValue = @1.5;

//保存动画执行状态

//解决方案2:使动画保存执行之后的状态,只要设置动画的两个属性

animation.removedOnCompletion = NO;// 动画对象不要移除

animation.fillMode = kCAFillModeForwards;//保存当前的状态

//2.往控件的图层添加动画

[self.imageView.layer addAnimation:animation forKey:nil];

}

@end

结果

图层的核心动画(CABaseAnimation)续的更多相关文章

  1. 图层的核心动画(CABaseAnimation)

    Main.storyboard // //  ViewController.m //  7A14.图层的核心动画 // //  Created by huan on 16/2/4. //  Copyr ...

  2. ios开发之图层与核心动画一:图层CALayer的认识

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  3. iOS核心动画高级技巧之图层变换和专用图层(二)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...

  4. iOS核心动画(专用图层篇)

    之前的文章我们了解了Core Animation中图层的一些基础知识.没有看过的传送门在此: iOS核心动画基础篇 那么在了解了这些基础知识之后,接下来进入专用图层的了解 苹果为了方便和性能,封装了几 ...

  5. iOS开发UI篇—核心动画(基础动画)

    转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...

  6. iOS开发UI篇—核心动画简介

    转自:http://www.cnblogs.com/wendingding/p/3801036.html iOS开发UI篇—核心动画简介 一.简单介绍 Core Animation,中文翻译为核心动画 ...

  7. 核心动画 (CAAnimationGroup)

    Main.storyboard ViewController.m // //  ViewController.m //  8A05.核心动画 CAAnimationGroup // //  Creat ...

  8. iOS开发——UI进阶篇(十七)CALayer,核心动画基本使用

    一.CALayer简介 1.CALayer在iOS中,文本输入框.一个图标等等,这些都是UIView你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个其实UIView之所以 ...

  9. 核心动画基础动画(CABasicAnimation)关键帧动画

    1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATran ...

随机推荐

  1. C#批量插入数据到Sqlserver中的三种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生 成 ...

  2. java 基本语法

    标识符 标识符就是给变量.类或方法起的名字. 标识符由26个英文字符大小写(a~zA~Z).数字(0~9).下划线(_)和美元符号($)组成 不能以数字开头,不能是关键字 严格区分大小写 标识符的可以 ...

  3. 忘记BIOS超级管理员密码,怎么破解?

    [请尊重原创版权,如需引用,请注明来源及地址] 本人就喜欢没事瞎折腾,动动手活动活动筋骨没坏处,前不久非常便宜的弄到一玩具 ThinkPad T400(公司处理品),外观还算不错,除了电源适配器是坏的 ...

  4. @ViewDebug.ExportedProperty的使用

    原文链接:http://daemon369.github.io/android/2014/06/12/android-viewdebug-exportedproperty/ http://www.eo ...

  5. linux命令(1):ls命令

    ls命令是linux下最常用的命令. ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看lin ...

  6. C++ Primer Plus 笔记记录

    (一) /a 这个转移字符竟然能调用计算机的硬件 喇叭~~ 对于float c++只能保证6位有效数字 似乎 double是13位 cout.setf(ios_base::fixed, ios_bas ...

  7. Centos 压缩、解压和打包命令

    gzip命令 --功能说明:gz文件的压缩和解压缩. --命令格式:gzip [参数] <文件> --常用参数: -d 解开压缩文件 -l 列出压缩文件的相关信息 -q 不显示警告信息 - ...

  8. Java C# C语言中的占位符

    一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...

  9. Ant: Class not found: javac1.8

    今天用ant,在选择build.xml,run as ant build后出错Ant: Class not found: javac1.8 分析问题:是否是eclipse中的ant版本和java的版本 ...

  10. The different between ng-grid & ui-grid

    ui-grid is replacing ng-grid, and support for ng-grid is getting thin as most of the original (2.x) ...