zoukankan      html  css  js  c++  java
  • 核心动画-06-关键帧动画-day4

      1 //
      2 //  ViewController.m
      3 //  06 关键帧动画
      4 //
      5 //  Created by ZhuJiaCong on 16/4/18.
      6 //  Copyright © 2016年 wxhl. All rights reserved.
      7 //
      8 
      9 #import "ViewController.h"
     10 
     11 @interface ViewController ()
     12 {
     13     CGMutablePathRef _path;
     14 }
     15 @property (weak, nonatomic) IBOutlet UIView *redView;
     16 
     17 @end
     18 
     19 @implementation ViewController
     20 
     21 - (void)viewDidLoad {
     22     [super viewDidLoad];
     23     
     24     _redView.layer.cornerRadius = 10;
     25     
     26     
     27     
     28 }
     29 
     30 
     31 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
     32     
     33     //关键帧动画
     34 //    CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"position"];
     35 //    
     36 //    //创建帧
     37 //    CGPoint point1 = CGPointMake(100, 100);
     38 //    CGPoint point2 = CGPointMake(150, 100);
     39 //    CGPoint point3 = CGPointMake(100, 150);
     40 //    CGPoint point4 = CGPointMake(150, 150);
     41 //    CGPoint point5 = CGPointMake(200, 100);
     42 //    CGPoint point6 = CGPointMake(100, 200);
     43 //    
     44 //    
     45 //    NSArray *array = @[[NSValue valueWithCGPoint:point1],
     46 //                       [NSValue valueWithCGPoint:point2],
     47 //                       [NSValue valueWithCGPoint:point3],
     48 //                       [NSValue valueWithCGPoint:point4],
     49 //                       [NSValue valueWithCGPoint:point5],
     50 //                       [NSValue valueWithCGPoint:point6]
     51 //                       ];
     52 //    
     53 //    keyFrame.values = array;
     54 //    
     55 //    keyFrame.duration = 3;
     56 //    
     57 //    //将动画添加到图层上去
     58 //    [_redView.layer addAnimation:keyFrame forKey:@"keyFrame"];
     59     
     60     
     61     
     62     
     63     if (_path) {
     64         CGPathRelease(_path);
     65         _path = NULL;
     66     }
     67     
     68     //创建路径
     69     _path = CGPathCreateMutable();
     70     //设置路径起点
     71     UITouch *touch = [touches anyObject];
     72     CGPoint location = [touch locationInView:self.view];
     73     CGPathMoveToPoint(_path, NULL, location.x, location.y);
     74     
     75 }
     76 
     77 - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
     78     //获取触摸点 添加路径点
     79     UITouch *touch = [touches anyObject];
     80     CGPoint location = [touch locationInView:self.view];
     81     
     82     CGPathAddLineToPoint(_path, NULL, location.x, location.y);
     83     
     84 }
     85 
     86 - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
     87     
     88     //执行动画
     89     CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"position"];
     90     keyFrame.path = _path;
     91     
     92     
     93     keyFrame.duration = 5;
     94     
     95     
     96     
     97     //速度控制函数
     98     keyFrame.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
     99     
    100     
    101     [_redView.layer addAnimation:keyFrame forKey:nil];
    102     
    103 }
    104 
    105 
    106 
    107 - (void)didReceiveMemoryWarning {
    108     [super didReceiveMemoryWarning];
    109     // Dispose of any resources that can be recreated.
    110 }
    111 
    112 @end
    时光见证了成长,还很无知,我想一点点幼稚转为有知!
  • 相关阅读:
    数学建模课程常用英语词汇(专业术语)
    MATLAB简易画图
    MATLAB与C语言对比实例:随机数生成
    C语言 投票系统:给定候选人,从键盘输入候选人的名字,统计票数,并输出最终获胜者
    C语言 一个数学问题:求s=(a^m)!+(b^n)!
    C语言 矩阵的转置及矩阵的乘法
    iOS_数据存取(二)
    iOS_数据存取(一)
    iOS_SDWebImage框架分析
    iOS_AFNetWorking框架分析
  • 原文地址:https://www.cnblogs.com/foreveriOS/p/5407171.html
Copyright © 2011-2022 走看看