ios开发 方形到圆的动画_iOS利用UIBezierPath + CAAnimation实现路径动画效果
前言
上次给大家介绍了iOS利用UIBezierPath + CAAnimation实现路径动画效果的相关内容,今天实现一个根据心跳路径实现一个路径动画,让某一视图沿着路径进行运动.。
效果图如下:
核心代码
1-首先通过 drawRect 绘制心形路径
- (void)drawRect:(CGRect)rect {
// Drawing code
// 初始化UIBezierPath
UIBezierPath *path = [UIBezierPath bezierPath];
// 首先设置一个起始点
CGPoint startPoint = CGPointMake(rect.size.width/2, 120);
// 以起始点为路径的起点
[path moveToPoint:startPoint];
// 设置一个终点
CGPoint endPoint = CGPointMake(rect.size.width/2, rect.size.height-40);
// 设置第一个控制点
CGPoint controlPoint1 = CGPointMake(100, 20);
// 设置第二个控制点
CGPoint controlPoint2 = CGPointMake(0, 180);
// 添加三次贝塞尔曲线
[path addCurveToPoint:endPoint controlPoint1:controlPoint1 controlPoint2:controlPoint2];
// 设置另一个起始点
[path moveToPoint:endPoint];
// 设置第三个控制点
CGPoint controlPoint3 = CGPointMake(rect.size.width-100, 20);
// 设置第四个控制点
CGPoint controlPoint4 = CGPointMake(rect.size.width, 180);
// 添加三次贝塞尔曲线
[path addCurveToPoint:startPoint controlPoint1:controlPoint4 controlPoint2:controlPoint3];
// 设置线宽
path.lineWidth = 3;
// 设置线断面类型
path.lineCapStyle = kCGLineCapRound;
// 设置连接类型
path.lineJoinStyle = kCGLineJoinRound;
// 设置画笔颜色
[[UIColor redColor] set];
[path stroke];
}
2-添加心形路径View到主视图
HeartView *heart = [[HeartView alloc] init];
heart.frame = CGRectMake(0, 0, Screen_Width, Screen_Height-Screen_Height);
[self.view addSubview:heart];
3-给动画视图(红色圆形视图)添加轨迹路径动画
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
// 设置动画的路径为心形路径
animation.path = self.path.CGPath;
// 动画时间间隔
animation.duration = 3.0f;
// 重复次数为最大值
animation.repeatCount = FLT_MAX;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
// 将动画添加到动画视图上
[_demoView.layer addAnimation:animation forKey:nil];
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
本文标题: iOS利用UIBezierPath + CAAnimation实现路径动画效果
本文地址: http://www.cppcns.com/ruanjian/ios/209176.html
ios开发 方形到圆的动画_iOS利用UIBezierPath + CAAnimation实现路径动画效果相关推荐
- ios开发 方形到圆的动画_ios – cornerRadius上的CGAffineTransformMakeScale动画圆形UIButton...
尝试将动画部分放在控制器类中而不是在子类按钮类中. //in customButton.h file #import @interface customButton : UIButton - (id) ...
- ios开发 方形到圆的动画_画个圆动画,的两种实现。iOS 动画由很浅,入浅,当然是 Swift...
方法一,使用 CAShapeLayer 和 UIBezierPath 加上 CABasicAnimation 有一个动画属性 strokeEnd 就算完 方法二,复杂一些.频繁调用 CALayer 的 ...
- ios开发 方形到圆的动画_3Blue1Brown 动画制作教程(1)--制作第一个自己的动画
制作第一个自己的动画 前一篇详细介绍了 3Blue1Brown 的动画引擎在 Windows 10 64 位系统上,基于 Anaconda的配置方法,并且详细描述了在配置 3Blue1Brown 提供 ...
- ios开发 方形到圆的动画_使用UIBezierPath画个圆动画
UIBezierPath主要用来绘制矢量图形,它是基于Core Graphics对CGPathRef数据类型和path绘图属性的一个封装,所以是需要图形上下文的(CGContextRef),所以一般U ...
- iOS开发10-iOS SandBox(沙盒或沙盘)介绍、路径获取
iOS开发10-iOS SandBox(沙盒或沙盘)介绍.路径获取 代码下载(Xcode7.0.1) 有问题请联系博主,邮箱:nathanlee1987@aliyun.com 1.沙盒路径的获取 & ...
- 【SwiftUI模块】0008、SwiftUI-自定义启动闪屏动画-App启动闪屏曲线路径动画
SwiftUI小功能模块系列 0001.SwiftUI自定义Tabbar动画效果 0002.SwiftUI自定义3D动画导航抽屉效果 0003.SwiftUI搭建瀑布流-交错网格-效果 0004.Sw ...
- ios开发中计算代码运算时间_iOS日历、日期、时间的计算
时间和日历的计算在iOS开发中经常看到,经常看到大家在百度,开源中国等搜索这些答案.今天写个简单的时间和日历有关的计算. 获取一个月的总天数 1.获取当月的天数 - (NSInteger)getNum ...
- Android开发笔记(一百八十七)利用估值器实现弹幕动画
如今上网看电影电视越发流行了,追剧的时候经常看到视频上方数行评论向左边飘去,犹如子弹那样飞快掠过,这些评论文字因此得名"弹幕".弹幕评论由正在观看的网友们即兴发表,故而连绵不绝从画 ...
- iOS-利用UIBezierPath和CAAnimation制作路径动画
继上篇的心跳动画,今天实现一个根据心跳路径实现一个路径动画,让某一视图沿着路径进行运动. 核心代码 1-首先通过 drawRect 绘制心形路径 - (void)drawRect:(CGRect)re ...
最新文章
- 高并发大型网站架构设计
- Kaggle八项大奖斩获其6:用于筛选和分析文献的paperai
- 更改SQL 2005登录时的默认数据库
- win32之hPrevInstance
- 全国省市区县数据库脚本
- C#创建带参数的线程
- Net设计模式实例之备忘录模式(Memento Pattern)
- P1447-[NOI2010]能量采集【GCD,数论,容斥】
- 【原创】自己编写的JavaGUI一键生成(hibernate/spring/mvc/maven)工具(附带视频教程源码)...
- javascript系列:NaN类型
- C#中StreamWriter与BinaryWriter的区别兼谈编码。
- 计算机办公软件中级考试题怎么做,计算机办公软件考试试题
- 【STM8L】STM8L之按键中断
- Android adb环境变量配置
- 1487 C. Minimum Ties
- win10 屏幕保护时间到了不触发_你真的了解Win10么?网友教你玩转Win10!
- 字符串的练习 统计字符串中大写,小写,数字的个数 29
- C语言基于easyx的打字训练软件。
- 金融快借贷款app下载域名微信内显示已停止访问该网页---被微信封杀或屏蔽的原因及预防措施
- 程序员职业生涯规划必读的十本书
热门文章
- 计算机用户锁定无法登陆,账户被锁定无法登录,电脑无法登录你的账户
- 2020 Dubbo面试题大全
- 【Makefile】Makefile文件中的 .PHONY 的作用
- android deeplink打开APP
- minio oss 分块上传
- 2.0.1-Reaper Midi 输入修改鼠标事件
- TCGA数据库ceRNA网络构建(三)ceRNA网络构建
- DNSPod十问贾宇航:告别“人工智障”?训练数据厂商为AI正名
- 黑盒测试用例设计方法一(等价类划分、边界值分析)
- java jaspersoft_java开源报表系统(Jaspersoft Studio)