基础动画

在开发过程中很多情况下通过基础动画就可以满足开发需求,前面例子中使用的UIView代码块进行图像放大缩小的演示动画也是基础动画(在iOS7 中UIView也对关键帧动画进行了封装),只是UIView装饰方法隐藏了更多的细节。如果不使用UIView封装的方法,动画创建一般分为以下几步:

1.初始化动画并设置动画属性

2.设置动画属性初始值(可以省略)、结束值以及其他动画属性

3.给图层添加动画

//
// ViewController.m
// Demo0218
//
// Created by wiseman on 16/2/18.
// Copyright (c) 2016年 wiseman. All rights reserved.
// #import "ViewController.h" @interface ViewController () {
CALayer *_layer;
} @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self test1];
} -(void)test1{
//CA核心动画:基础动画,关键帧动画,动画组
_layer = [[CALayer alloc]init];
_layer.bounds = CGRectMake(, , , );
_layer.position = CGPointMake(, );
_layer.backgroundColor = [UIColor redColor].CGColor;
[self.view.layer addSublayer:_layer]; } //移动动画
-(void)translatonAnimation:(CGPoint)location{
//创建动画并制定动画属性
CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
//设置动画属性的初始值和结束值
// basicAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
basicAnimation.toValue = [NSValue valueWithCGPoint:location];
basicAnimation.duration = 2.0;
//运行一次是否删除动画
// basicAnimation.removedOnCompletion = NO;
//设置重复次数,HUGE_VALF可看做无穷大,起到循环动画的效果
// basicAnimation.repeatCount = HUGE_VALF; //代理
basicAnimation.delegate = self;
[basicAnimation setValue:[NSValue valueWithCGPoint:location] forKey:@"KCBasicAnimationLocation"];
[basicAnimation setValue:@"fuck1" forKey:@"AnimName"]; //添加动画到图层,注意key相当于给动画进行命名,以后获得该动画时可以使用此名称获取
[_layer addAnimation:basicAnimation forKey:@"fuck"];
} //旋转动画
-(void)rotationAnimation{
//创建动画并制定动画属性
CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
//设置动画属性的初始值和结束值
// basicAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
basicAnimation.toValue=[NSNumber numberWithFloat:M_PI_2*];
basicAnimation.duration = 3.0;
// basicAnimation.autoreverses = true;//旋转后再旋转到原来的位置
basicAnimation.repeatCount = HUGE_VALF; //添加动画到图层,注意key相当于给动画进行命名,以后获得该动画时可以使用此名称获取
[_layer addAnimation:basicAnimation forKey:@"fuck2"];
} -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = touches.anyObject;
CGPoint location = [touch locationInView:self.view];
//创建并开始动画
[self translatonAnimation:location];
[self rotationAnimation];
} - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{ NSString *str = [anim valueForKey:@"AnimName"]; if ([str isEqualToString:@"fuck1"]) {
CGPoint point = [[anim valueForKey:@"KCBasicAnimationLocation"] CGPointValue];
//开启事务
[CATransaction begin];
//禁用隐式动画
[CATransaction setDisableActions:YES]; _layer.position = point; //提交事务
[CATransaction commit];
} } - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

Core Animation中的基础动画的更多相关文章

  1. Core Animation中的组动画

    实际开发中一个物体的运动往往是复合运动,单一属性的运动情况比较少,但恰恰属性动画每次进行动画设置时一次只能设置一个属性进行动画控制(不管是 基础动画还是关键帧动画都是如此),这样一来要做一个复合运动的 ...

  2. Core Animation之CABasicAnimation(基础动画)

    #import "ViewController.h" @interface ViewController () @property(nonatomic,strong)UIButto ...

  3. Core Animation中的关键帧动画

    键帧动画就是在动画控制过程中开发者指定主要的动画状态,至于各个状态间动画如何进行则由系统自动运算补充(每两个关键帧之间系统形成的动画称为“补间动画”),这种动画的好处就是开发者不用逐个控制每个动画帧, ...

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

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

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

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

  6. jQuery动画高级用法(上)——详解animation中的.queue()动画队列插队函数

    决定对animate方面做一些总结,希望能给大家一些启发和帮助 从一个实际应用谈起 今天不谈animate().fadeIn().fadeOut().slideUp().show().hide()诸如 ...

  7. 在ios中运用core animation暂停和继续动画

    本文转载至 http://blog.csdn.net/wildfireli/article/details/23191861 暂停和继续动画的核心代码如下: <pre name="co ...

  8. core Animation之CAKeyframeAnimation(关键帧动画)

    CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSA ...

  9. Core Animation一些Demo总结 (动态切换图片、大转盘、图片折叠、进度条等动画效果)

    前一篇总结了Core Animation的一些基础知识,这一篇主要是Core Animation 的一些应用,涉及到CAShapeLayer.CAReplicatorLayer等图层的知识. 先看效果 ...

随机推荐

  1. 【USACO】草地排水

    Drainage Ditches 草地排水 usaco 4.2.1描述在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一 ...

  2. ACM-ICPC之路

    自从了解到了ACM,我就坚定了参加这个比赛的信心.虽然零基础开始,但是阻挡不了我的前进之路.从大一上学期的完成二十道题,到假期完成四十道题:从第一次校赛不了解退出循环方式只完成了一道题,到大一预选赛第 ...

  3. asp.net 后台验证成功(弹出对话框)并跳转?不能实现

    原始 Context.Response.Write("<script></script>"); Response.Redirect(); 解决办法: Cli ...

  4. PHP之APC缓存详细介绍(学习整理)

    APC的介绍 The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is to provi ...

  5. 《JavaScript高级程序设计》读书笔记 ---创建对象

    虽然Object 构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码.为解决这个问题,人们开始使用工厂模式的一种变体. 工厂模式工厂 ...

  6. Gdiplus 贴图(助记) -------------------拖动整个对话框

    最简单的两种方法: 一.使WM_NCHITTEST始终返回HTCAPTION,也就是欺骗系统让他以为这是菜单栏. LRESULT CDemoDlg::OnNcHitTest(CPoint point) ...

  7. Jmeter组件介绍

    测试计划:一次性能测试的相关功能用例集. 测试计划--线程组添加:

  8. Maxwell顺态求解器电磁力分析

    文源:技术邻 问题描述:求解一段通有正弦交流电的直导线在某一稳态磁场中的受力情况,并简单验证仿真结果. 模型介绍: 如上几何模型中10mm边长立方体代表永磁体,材料属性为材料库中的NdFe35,修改磁 ...

  9. # 欢迎使用Markdown编辑器写博客

    似的发射点 甜甜 他inn他 absct{ for i 士大夫似的 胜多负少 import os import sys import subprocess import textwrap if sys ...

  10. Maze

    Maze 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5094 BFS+状态压缩 把身上携带钥匙的状态压缩成一个2^10的整数.这道题难在 ...