ios核心动画之关键帧动画

 1 #import "NJViewController.h"
 2
 3 @interface NJViewController ()
 4
 5 @property (weak, nonatomic) IBOutlet UIView *customView;
 6 - (IBAction)btnClick:(id)sender;
 7 @end
 8
 9 @implementation NJViewController
10
11 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
12 {
13
14     [self test1];
15 //    [self test1];
16 }
17
18 - (void)test1
19 {
20     // 1.创建核心动画
21     CAKeyframeAnimation *keyAnima = [CAKeyframeAnimation animation];
22     // 1.1告诉系统执行什么动画
23     keyAnima.keyPath = @"position";
24
25     CGMutablePathRef path = CGPathCreateMutable();
26     CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 100, 200, 200));
27
28     keyAnima.path = path;
29     CGPathRelease(path);
30
31     // 1.2保存执行完之后的状态
32     // 1.2.1执行完之后不删除动画
33     keyAnima.removedOnCompletion = NO;
34     // 1.2.2执行完之后保存最新的状态
35     keyAnima.fillMode = kCAFillModeForwards;
36
37     // 1.3设置动画时间
38     keyAnima.duration = 2;
39     // 2.观察动画什么时候开始执行, 以及什么时候执行完毕
40     keyAnima.delegate = self;
41     // 3.添加核心动画
42     [self.customView.layer addAnimation:keyAnima forKey:@"abc"];
43 }
44
45 - (IBAction)btnClick:(id)sender {
46
47     // 停止动画
48     [self.customView.layer removeAnimationForKey:@"abc"];
49 }
50
51
52 - (void)test
53 {
54     // 1.创建核心动画
55     CAKeyframeAnimation *keyAnima = [CAKeyframeAnimation animation];
56     // 1.1告诉系统执行什么动画
57     keyAnima.keyPath = @"position";
58     //    NSValue *v1 = [NSValue valueWithCGPoint:CGPointMake(0, 100)];
59     NSValue *v2 = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
60     NSValue *v3 = [NSValue valueWithCGPoint:CGPointMake(100, 200)];
61     NSValue *v4 = [NSValue valueWithCGPoint:CGPointMake(0, 200)];
62     NSValue *v5 = [NSValue valueWithCGPoint:CGPointMake(0, 100)];
63
64     keyAnima.values = @[v2, v3, v4, v5];
65
66     //    keyAnima.keyTimes = @[@(0.5) ,@(0.5), @(0.5)];
67
68     keyAnima.timingFunction =  [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
69
70     // 1.2保存执行完之后的状态
71     // 1.2.1执行完之后不删除动画
72     keyAnima.removedOnCompletion = NO;
73     // 1.2.2执行完之后保存最新的状态
74     keyAnima.fillMode = kCAFillModeForwards;
75
76     // 1.3设置动画时间
77     keyAnima.duration = 2;
78
79     // 2.观察动画什么时候开始执行, 以及什么时候执行完毕
80     keyAnima.delegate = self;
81
82
83     // 2.添加核心动画
84     [self.customView.layer addAnimation:keyAnima forKey:nil];
85 }
86
87 - (void)animationDidStart:(CAAnimation *)anim
88 {
89     NSLog(@"animationDidStart");
90 }
91
92 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
93 {
94     NSLog(@"animationDidStop");
95 }
96
97
98 @end
时间: 2024-10-15 05:53:06

ios核心动画之关键帧动画的相关文章

核心动画基础动画(CABasicAnimation)关键帧动画

1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATransition) 2.CAAnimation:核心动画的基础类,不能直接使用,负责动画运行时间,速度的控制,本身实现了CAMediaTiming协议 3.CAPropertyAnimation:属性动画也是基类(通过属性进行动画设置,注意是动画属性),不能直接使用. CABasicAnimation:

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

CAKeyframeAnimation——关键帧动画 关键帧动画,也是CAPropertyAnimation的子类,与CABasicAnimation的区别是: –CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 – 属性说明: –values:上述的NSArray对象.里面的元素称为“关键帧”(keyframe).动画对象会在指定的时间(duration)内,依次显

显示动画,隐式动画、关键帧动画

概要 一些简单的动画代理学习例子,包括显示.隐式.关键帧.关键帧路径四类动画.(感觉这个动画太复杂,学习简单的例子没继续了) 结果展示 流程概要 见代码 主要代码 // // ViewController.m // Animation // // Created by arbboter on 14/12/20. // Copyright (c) 2014年 arbboter. All rights reserved. // #import "ViewController.h" @int

WPF动画之关键帧动画(2)

XAML代码: 1 <Window x:Class="关键帧动画.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="MainWindow" Height="350"

iOS学习笔记28-基础动画和关键帧动画

首先创建layer CALayer *layer = [CALayer layer]; layer.bounds = CGRectMake(0, 0, 100, 100); layer.position = CGPointMake(100, 100); layer.backgroundColor = [UIColor yellowColor].CGColor; [self.view.layer addSublayer:layer]; self.layer = layer; 设置点击事件 -(vo

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

iOS开发UI篇—核心动画(关键帧动画) 一.简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 属性解析: values:就是上述的NSArray对象.里面的元素称为”关键帧”(keyframe).动画对象会在指定的时间(duration)内,依次显示values数组

iOS开发UI篇—核心动画(关键帧动画)(转摘)

iOS开发UI篇—核心动画(关键帧动画) 一.简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 属性解析: values:就是上述的NSArray对象.里面的元素称为”关键帧”(keyframe).动画对象会在指定的时间(duration)内,依次显示values数组

iOS核心动画

iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单: CALayer CALayer简介 CAL

iOS核心动画以及UIView动画的介绍

我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些iOS开发中最基本的动画效果实现,掌握了基本属性,才可以绘制出更华丽的效果. 一.概念扩充  1.核心动画: Core Animation,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍. Core Animation可以用在Mac OS X和iOS平台.在iO