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. avi文件打开出现花屏、打开不了问题

    以avi为后缀名文件,其编码格式并不是单一的,而是多种格式都可以以avi作为后缀. AVI(Audio Video Interleaved的缩写)是一种RIFF(Resource Interchang ...

  2. Unity Application 前后台切换调用关系

    [Unity Application 前后台切换调用关系] http://blog.csdn.net/aa4790139/article/details/48087877

  3. ubuntu源码安装node7+

    在官网上下载了node的tar.xz文件(node7.3.0),安装分为两步:1.解压  2.安装 解压也分成两步,首先用xz -d xxx.tar.xz解压为xxx.tar,然后用tar -xvf ...

  4. 利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别

    --------------------------------------------------低调的分割线-------------------------------------------- ...

  5. iOS手机功能汇总

    开发中经常会调用手机功能,今天来汇总一下,若有不足欢迎大家指出,下面分别介绍如下功能 : 电话 短信 邮件 通讯录 定位 跳转应用 跳转App Store 打开其他文件 电话 调用电话有下图两种不同样 ...

  6. ANDROID开发之问题积累及解决方案(二)

    错误:“Binary XML file line # : Error inflating class” 原因:此异常是布局文件中有错引起的,那么返回到布局文件中看看. <?xml version ...

  7. 获取WIFI的SSID和本机IP

    1.获取WIFI的SSID 引入库 #import <SystemConfiguration/CaptiveNetwork.h> ..... ..... // WIFI的名字 + (NSS ...

  8. [z]START WITH CONNECT BY PRIOR子句实现递归查询

    [z]http://jingyan.baidu.com/article/5d368d1e182bb93f60c05784.html START WITH CONNECT BY PRIOR这个语法主要用 ...

  9. Nginx-->基础-->理论-->nginx进程模型

    一.nginx的进程模型基础 如上图,是nginx的基本进程模型. 1.nginx的master进程与worker进程关系 nginx的master进程负责worker进程的管理,包括创建worker ...

  10. Visual studio 生成事件的使用 、xcopy 实现 dll 复制操作、

    IF NOT "$(ConfigurationName)"=="publish" exit /B 0if not exist $(TargetPath)publ ...