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. cf732f

    思路:先缩点,再以最大连同分量为根dfs,代码太垃圾不想贴

  2. oracle 的 nubmer 类型与 C# 的 float double decimal 对应关系

    如果先有oracle 数据的情况下,怎么对应到C#中的类型. 在oralce 中 在dba_tab_columns表中, Data_type表示字段类型:Data_length表示字段类型的长度:Da ...

  3. CC1310电源

    CC1310的电源好扯,把目前遇到的问题记录一下 1 全局LDO和DCDC的输出电压问题 手册上要求的VDDR和VDDR_RF的电压范围是1.7~1.95V,但实际测试时, 在接收状态下无论是全局LD ...

  4. (转)tar.xz文件如何解压

    XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数Linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到 ...

  5. Huffman编码

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cstri ...

  6. 神经网络(python源代码)

    神经网络的逻辑应该都是熟知的了,在这里想说明一下交叉验证 交叉验证方法: 看图大概就能理解了,大致就是先将数据集分成K份,对这K份中每一份都取不一样的比例数据进行训练和测试.得出K个误差,将这K个误差 ...

  7. JavaScript基础认知

    此文只适用于初学者,大神们就不要看了,嘿嘿~ 一.定义变量 关键字 var,由此关键字定义变量,例如:var a =21:就把21这个数定义给了变量a 二.基本数据类型 1.Number类型 表示数字 ...

  8. C#读取Excel的三种方式以及比较

    (1)OleDB方式 优点:将Excel直接当做数据源处理,通过SQL直接读取内容,读取速度较快. 缺点:读取数据方式不够灵活,无法直接读取某一个单元格,只有将整个Sheet页读取出来后(结果为Dat ...

  9. 老男孩python自动化运维作业2

    拿到要求真不知道怎么写,不能还要写个商城页面吧: 最后还是用了input()模拟用户操作吧- -!不就操作个字典吗(字典模拟商品数据). python版本: >>>import sy ...

  10. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...