CAKeyframeAnimation ---关键帧动画 (二)

2024-06-16 01:58

本文主要是介绍CAKeyframeAnimation ---关键帧动画 (二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线性动画。

初始化动画对象:

    _imageView = [[UIImageView alloc]init];

    [_imageView setBackgroundColor:[UIColor clearColor]];

    [_imageView setFrame:CGRectMake(20, 40, 20, 60)];

    [_imageView setImage:[UIImage imageNamed:@"brush.png"]];

    [self.view addSubview:_imageView];

1.设置起点

- (void)createPath {

    self.starPath = CGPathCreateMutable();

    CGPathMoveToPoint(self.starPath, NULL, 40, 80);

}


2.设置动画:

if (self.starPath) {

        CFRelease(self.starPath);

        [self createPath];

        [self.view.layer setNeedsDisplay];

    }

    CGMutablePathRef path = CGPathCreateMutable(); /* 初始化创建路线 */

    CGPathMoveToPoint(path, NULL, 40, 80); /*  路线起点 */

    CGPathAddLineToPoint(path, NULL, 80, 150);  /* 连线到第二个点*/

    CGPathAddLineToPoint(path, NULL, 100, 90);  /*  连线到第三个点*/

    CGPathCloseSubpath(path); /* 路线close 起来,即让第三个点和第一点自动连接*/

    

    CAKeyframeAnimation * theAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

    theAnimation.path = path;  /* 动画路线 */

    theAnimation.duration = 10 ;   /*  动画总时间*/

    CFRelease(path);


3.选择动画图层:

    [self.imageView.layer addAnimation:theAnimation forKey:@"position"]; /* 让图片开始动画 */

转载于
http://lzero1319.blog.163.com/blog/static/32178161201301631230594/

这篇关于CAKeyframeAnimation ---关键帧动画 (二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065195

相关文章

ArkTS开发系列之导航 (2.7动画)

上篇回顾: ArkTS开发系列之导航 (2.6 图形) 本篇内容:动画的学习使用 一、 知识储备 1. 布局更新动画 包含显式动画(animateTo)和属性动画(animation) 动画类型名称特点显式动画闭包内的变化都会触发动画执行, 可以做较复杂的动画属性动画属性变化时触发动画执行, 设置简单 说白了,显示动画就是靠闭包事件触发,属性动画是挂在组件身上的属性变化触发 显式动画

Android 扇形网络控件 - 无网络视图(动画)

前言 一般在APP没有网络的情况下,我们都会用一个无网络的提示图标,在提示方面为了统一app的情况,我们一般使用简单的提示图标,偶尔只需要改变一下图标的颜色就一举两得,而不需要让PS来换一次颜色。当然app有图标特殊要求的就另当别论了。 效果图 当你第一眼看到这样的图,二话不说直接让UI给你切一张图标来的快对吧,我其实开始也是这么想的,但是到了做的app越来越多的时候,你就会发现就算是用

PriorityQueue详解(含动画演示)

目录 PriorityQueue详解1、PriorityQueue简介2、PriorityQueue继承体系3、PriorityQueue数据结构PriorityQueue类属性注释完全二叉树、大顶堆、小顶堆的概念☆PriorityQueue是如何利用数组存储小顶堆的?☆利用数组存储完全二叉树的好处? 4、PriorityQueue的`offer`方法动画演示offer插入过程: 5、Pri

LVGL8.3动画图像(太空人)

LVGL8.3 动画图像 1. 动画图像本质 我们知道电影属于视频,而电影的本质是将一系列动作的静态图像进行快速切换而呈现出动画的形式,也就是说动画本质是一系列照片。所以 lvgl 依照这样的思想而定义了动画图像,所以在 lvgl 中动画图像类似于普通的静态图像对象。 唯一的区别是,动画图像设置了一个由多个源图像组成的数组,而不仅仅指定一个源图像。 2. 设置动画图像图片来源 不过在此之前

vuejs3用gsap实现动画

效果 gsap官网地址: https://gsap.com/ 安装gsap npm i gsap 创建Gsap.vue文件 <script setup>import {reactive, watch} from "vue";import gsap from "gsap";const props = defineProps({value:{type:Number,default

Android面试题之动画+事件处理篇

================================================================= 1、Android 中的动画有哪几类 帧动画、补间动画、属性动画 2、动画能组合在一起使用么? 可以将动画组合在一起使用AnimatorSet, AnimatorSet.play() 播放当前动画的同时可以 .with() :将现有动画和传入

动画与帧率

先看视频,同样的代码,左侧是240刷显示器,右侧是60刷显示器,但是动画中粒子的运动速度不同。 原因是机器的帧率导致了基于帧的动画显示效果不同。 动画的移动距离是相同的,但是在240刷的显示器上,每秒移动240次,在60刷的显示器上,每秒移动60次。这就导致了在高刷显示器上,动画移动的更快。 解决办法是更换基于时间的JS动画库即可。 下面给出复现示例,meethigher/animatio

Flutter-实现头像叠加动画效果

实现头像叠加动画效果 在这篇文章中,我们将介绍如何使用 Flutter 实现一个带有透明度渐变效果和过渡动画的头像叠加列表。通过这种效果,可以在图片切换时实现平滑的动画,使 UI 更加生动和吸引人。 需求 我们的目标是实现一个头像叠加列表,在每隔 2 秒时切换头像,并且在切换过程中,前一个头像逐渐消失,新进入的头像逐渐显示,同时有一个从右向左的移动过渡效果。 具体需求包括: 支持头像圆形

CSS动画(动态导航栏)

1.项目简介 一个具有创意的导航菜单不仅能为你的大作业增色,还能展示你的技术实力。本文将分享一系列常用于期末大作业的CSS动画导航效果,这些效果不仅外观酷炫,而且易于实现。我们提供了一键复制的代码,让你能够快速集成到自己的项目中,节省时间,提高效率,让你的期末大作业脱颖而出。 2.完整代码 HTML <!DOCTYPE html> <html lang="en"> <head

css 动画

transform的3D动画 3D形变函数会创建一个合成层来启用GPU硬件加速 translate transform: translateY(100px);transform: translateX(100px);transform: translateZ(100px);transform: translate3d(100px,100px,100px); // x,y,z的简写