Main.storyboard

ViewController.m

//

//  ViewController.m

//  8A02.核心动画 - CAKeyframeAnimation

//

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

//添加一个圆

CGFloat screenW = [UIScreen mainScreen].bounds.size.width;

UIView *circleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screenW, screenW)];

circleView.backgroundColor = [UIColor yellowColor];

//设置圆角

circleView.layer.cornerRadius = screenW * 0.5;

[self.view addSubview:circleView];

//把图片移到顶部

[self.view bringSubviewToFront:self.imageView];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

//学习帧动画

//创建一个帧动画

CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];

animation.keyPath = @"position";

//设置动画执行路径 指定四个点

NSValue *value1 = [NSValue valueWithCGPoint:CGPointMake(50, 50)];

NSValue *value2 = [NSValue valueWithCGPoint:CGPointMake(250, 50)];

NSValue *value3 = [NSValue valueWithCGPoint:CGPointMake(250, 250)];

NSValue *value4 = [NSValue valueWithCGPoint:CGPointMake(50, 250)];

//数组第一个是"开始状态" 最后一个是“结束状态”

animation.values = @[value1, value2, value3, value4, value1];

//设置时间

animation.duration = 3;

//设置动画节奏

//    kCAMediaTimingFunctionEaseIn 先慢后快

//    kCAMediaTimingFunctionEaseOut 先慢后快

//    kCAMediaTimingFunctionEaseOut 线性匀速

//    kCAMediaTimingFunctionEaseInEaseOut 中间快两边慢

animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

#warning 内部的path的优先级大于values优先级

//设置路径

CGMutablePathRef path = CGPathCreateMutable();

CGFloat screenW = [UIScreen mainScreen].bounds.size.width;

CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 0, screenW, screenW));

animation.path = path;

//c语言的数据类型,如果create/copy/retain 创建要释放

//添加动画

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

}

@end

结果

核心动画(CAKeyframeAnimation)的更多相关文章

  1. 核心动画 - CAKeyframeAnimation 简单应用

    核心动画: 登录按钮的抖动效果: CAKeyframeAnimation * kfAnimation = [CAKeyframeAnimation animationWithKeyPath:@&quo ...

  2. IOS 核心动画(Core Animation)

    Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它 能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就 可以实现非常强大的功能. Core ...

  3. AJ学IOS(40)UI之核心动画_抖动效果_CAKeyframeAnimation

    AJ分享,必须精品 效果: 效果一: 效果二: 代码: // // NYViewController.m // 图片抖动 // // Created by apple on 15-5-8. // Co ...

  4. IOS 核心动画之CAKeyframeAnimation - iBaby

    - IOS 核心动画之CAKeyframeAnimation - 简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation ...

  5. iOS:核心动画之关键帧动画CAKeyframeAnimation

    CAKeyframeAnimation——关键帧动画 关键帧动画,也是CAPropertyAnimation的子类,与CABasicAnimation的区别是: –CABasicAnimation只能 ...

  6. 核心动画(CAKeyframeAnimation,CABasicAnimation)

    一,核心动画常用的三种例子 view的核心动画其体现就是把view按照指定好的路径进行运动,针对的是view的整体. [view.layer addAnimation:动画路径 forKey:@“绑定 ...

  7. CoreAnimation 核心动画 / CABasicAnimation/ CAKeyframeAnimation

    - (void)createBaseAnimation{ //基础动画 CABasicAnimation *animation = [CABasicAnimation animation]; anim ...

  8. ios开发核心动画五:图标抖动效果--CAKeyframeAnimation

    #import "ViewController.h" #define angle2Rad(angle) ((angle) / 180.0 * M_PI) @interface Vi ...

  9. iOS开发UI篇—核心动画(关键帧动画)

    转自:http://www.cnblogs.com/wendingding/p/3801330.html iOS开发UI篇—核心动画(关键帧动画) 一.简单介绍 是CApropertyAnimatio ...

随机推荐

  1. node npm 安装模块 淘宝镜像

    npm --registry https://registry.npm.taobao.org info underscore

  2. .Net“/”应用程序中的服务器错误 超过了最大请求长度 错误解决办法

    错误如下: 错误提示: 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Web.HttpE ...

  3. 签名 cd

    http://blog.sina.com.cn/s/blog_618199e60101uc7w.html

  4. Tcc学习笔记(二) 安装和配置

    1.下载和编译 去repo.or.cz/tinycc.git下载最新的snapshot压缩包, 或者用git命令下载: git clone git://repo.or.cz/tinycc.git . ...

  5. Java 占位符使用 和 修饰符

    Java中占位符的使用 String类的format()方法 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法, ...

  6. 如何进入IT行业?

    其实IT行业就如一个具有标准配件的机一样是开放的行业,无论你是否科班出身,无论你是什么学历,只要你掌握相关的针对性很强的计算机知识,想在IT行业发展随时可以即插即用,这主要由IT行业的特点确PC定的. ...

  7. servlet的session为null?

    servlet的session(会话)显示为null,一般是web.xml中配置不对或者在浏览器输入的url不正确造成的. web.xml配置如下: <servlet> <servl ...

  8. 关于AJAX

    Ajax(异步JavaScript和XML) ajax主要用于异步加载页面,可以使用户在不刷新页面的情况下进行更新. ajax的主要优势是对页面的请求以异步的方式发送到服务器.而服务器不会再用整个页面 ...

  9. android 获取系统联系人 完全解析

    一.代码 1.ContactsEngine.java import java.util.ArrayList; import java.util.HashMap; import java.util.Li ...

  10. XE3随笔15:使用 IXMLHTTPRequest 简单获取网页源代码

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...