OC动画:CAKeyframeAnimation
2024-08-26 19:12:27
// 方法一 用法1 Value方式
//创建动画对象 CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; //设置value NSValue *value1=[NSValue valueWithCGPoint:CGPointMake(100, 100)]; NSValue *value2=[NSValue valueWithCGPoint:CGPointMake(200, 100)]; NSValue *value3=[NSValue valueWithCGPoint:CGPointMake(100, 200)]; NSValue *value4=[NSValue valueWithCGPoint:CGPointMake(200, 200)]; NSValue *value5=[NSValue valueWithCGPoint:CGPointMake(100, 300)]; NSValue *value6=[NSValue valueWithCGPoint:CGPointMake(200, 300)]; animation.values=@[value1,value2,value3,value4,value5,value6]; //重复次数 默认为1 // animation.repeatCount=MAXFLOAT; //设置是否原路返回默认为不 // animation.autoreverses = YES; //设置移动速度,越小越快 animation.duration = 4.0f; animation.removedOnCompletion = NO; animation.fillMode = kCAFillModeForwards; animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; animation.delegate=self; //给这个view加上动画效果 [redView.layer addAnimation:animation forKey:nil];
CAKeyframeAnimation *keyframeAnimation=[CAKeyframeAnimation animationWithKeyPath:@"position"];
// 创建一个CGPathRef对象,就是动画的路线
CGMutablePathRef path = CGPathCreateMutable();
// 设置开始位置
CGPathMoveToPoint(path, NULL, redView.layer.position.x-40, redView.layer.position.y+40);//移动到起始点
// 沿着路径添加四曲线点移动
CGPathAddQuadCurveToPoint(path, NULL, 100, 100, self.view.frame.size.width, 0);
keyframeAnimation.path = path;
keyframeAnimation.delegate = self;
CGPathRelease(path);
keyframeAnimation.duration = 7;
[redView.layer addAnimation:keyframeAnimation forKey:@"KCKeyframeAnimation_Position"];
最新文章
- Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
- Netty里的设计模式
- 自己用的一个ASP.Net MVC分页拿出来分享下(转)
- [系统开发] FileMaker进销存系统
- OpenCV 连接 Android IP摄像头
- UOJ 08 Quine 是在下输了
- Anjuta 调试无输出 warning: GDB: Failed to set controlling terminal
- iOS UISearchBar学习笔记
- php 遍历文件夹及文件,获取文件名和文件路径存入数据库中
- HTML中心在页面上弹出自定义表单层(实现可能拖累)
- Cg(C for Graphic)标准函数库之数学函数与几何函数
- 安装Oracle服务端后配置注册表与PL/SQL
- Win10 UWP开发系列:开发一个自定义控件——带数字徽章的AppBarButton
- MyBatis 框架之快速入门程序
- .NET Core微服务之基于Ocelot实现API网关服务
- Handler Timer TimerTask ScheduledExecutor 循环任务解析
- java8 list统计(求和、最大、最小、平均)
- java虚拟内存设置 防止内存溢出 OutOfMemory【转】【原】
- [No0000157].net core项目中拼音,excel,pdf处理库
- 前端-CSS样式
热门文章
- [BOOK] Applied Math and Machine Learning Basics
- vue封装第三方插件并发布到npm
- 嵌入式Linux应用开发__求职要求
- Http 调用netty 服务,服务调用客户端,伪同步响应.ProtoBuf 解决粘包,半包问题.
- Qt编写的开源帖子集合(懒人专用)
- C语言结构体初始化(转载)
- Ubuntu下U盘变成只读的解决方法
- thinkphp5---如何使用公共类
- 10.17正式开发stark项目(二)
- java中常用的加密方式