简单彩虹动画的效果实现

我们先看下最后的效果图

1、首先我们使用UIBezierPath类画一个圆弧,使用方法
+ (instancetype)bezierPathWithArcCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;

center 圆弧的位置
radius 圆弧的弧度
startAngle 开始的地方
endAngle 结束的地方

2、使用CAShapeLayer类给圆弧一个基础层

        _progressLayer = [CAShapeLayer layer];//创建_progressLayer.frame = self.bounds;//位置_progressLayer.fillColor =  [[UIColor clearColor] CGColor];//填充颜色_progressLayer.strokeColor=[UIColor redColor].CGColor;//弧形颜色_progressLayer.lineCap = kCALineCapRound;_progressLayer.lineWidth = PROGRESS_LINE_WIDTH;

3、使用CAGradientLayer类做一个彩虹颜色渐变的效果填充到上面

  CAGradientLayer *gradient =  [CAGradientLayer layer];//创建对象gradient.frame = _progressLayer.frame;[gradient setColors:[NSArray arrayWithObjects:(id)[[UIColor redColor] CGColor],(id)[[UIColor yellowColor] CGColor],(id)[[UIColor redColor] CGColor],(id)[[UIColor yellowColor] CGColor],(id)[[UIColor blueColor] CGColor],(id)[[UIColor redColor] CGColor], nil]];//设置颜色[gradient setLocations:@[@0,@0.3,@0.5,@0.6,@0.8,@1]];//每种颜色最后的位置[gradient setStartPoint:CGPointMake(0, 0)];//起始点[gradient setEndPoint:CGPointMake(1, 0)];//结束点[gradient setMask:_progressLayer];//截取圆弧[self.layer addSublayer:gradient];//添加

做到这里就差不多完了。。。
再做一个动画的效果吧
4、动画我使用的是CABasicAnimation类

 CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"strokeEnd"];animation.duration = 2;animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];animation.fromValue=[NSNumber numberWithFloat:0.0f];animation.toValue=[NSNumber numberWithFloat:1.0f];animation.autoreverses=NO;_progressLayer.path=path.CGPath;[_progressLayer addAnimation:animation forKey:@"strokeEndAnimation"];

这样的话就达到了开始的图片的效果了,

写得不好的地方希望大神指点。

简单彩虹动画的效果实现相关推荐

  1. python制作简单动画_把数据摇起来!用Python制作动画可视化效果!

    Python 中有很多不错的数据可视化库,但是极少能渲染 GIF 图或视频动画效果.本文就分享一下如何用 MoviePy 作为其他可视化库的通用插件,制作动画可视化效果,毕竟这年头,没图不行,有动图更 ...

  2. 【前端实例代码】Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果~前端开发网页设计基础入门教程~适合初学者~超简单~

    b站视频演示效果: [前端实例代码]Html5+css3创建拟物风格昏昏欲睡的云朵动画网页效果!前端开发网页设计基础入门教程!适合初学者~超简单~ 效果图: 完整代码: <!DOCTYPE ht ...

  3. html 语言 gif 动画,动效篇(1)--从简单CSS3动画片段代码,到生成gif动图~

    简单css动画片段代码(最终效果 ) (一)请自行下载安装Dreamweaver 在Dreamweaver编写代码(如需参考请复制下列代码) (二)HTML CSS代码详解css代码(/*详解*/) ...

  4. iOS开发UI篇—iOS开发中三种简单的动画设置

    [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要"参与到"动画中 [UIView beginAnimations: ...

  5. Qt基于QGraphicsObject自定义图元并实现简单的动画

    文章目录 Qt基于QGraphicsObject自定义图元并实现简单的动画 举例; Qt基于QGraphicsObject自定义图元并实现简单的动画 Qt 图形的绘制 可以是QPainter方法直接绘 ...

  6. 简单的动画函数封装(2)

    <div></div><!-- <span></span> --><button class="btn1"> ...

  7. 简单的动画函数封装(1)

    //创建简单的动画函数封装效果(目标对象,目标位置) function animate(obj,target){var id = setInterval(function(){if(obj.offse ...

  8. javafx 动画没效果_通过JavaFX标注制作动画效果

    javafx 动画没效果 在本文中,您将学习如何使用JavaFX的动画API创建标注. 您可以在https://www.youtube.com/watch?v=XTHbB0LRdT4的 YouTube ...

  9. c# 为你的Form实现动画的效果

    在WPF中可以很方便的实现动画的效果,而在普通的WinForm程序里实现却有点麻烦,这里我用一种模拟的方式来实现WinForm有关的动画 回忆一下在WPF中动画效果的实现,首先创建一个故事板 Stor ...

  10. 3.15 study 简单移动动画js实现

    首先老规矩汇报学习进度129/167 为什么这么慢呢是我偷偷停工了好几天有些迷茫(就是在玩去了),然后其实昨天也看了一点但太少了就没写博客,然后看一下今天的效果 一个滑块移动的案例 想用gif动图好像 ...

最新文章

  1. Android类库打包方法探究
  2. 大白话系列之C#委托与事件讲解(一)
  3. 从 LRU Cache 带你看面试的本质
  4. 认知学习法-学习笔记
  5. 查询三个月前的所有数据的sql语句
  6. 幽灵交易策略_幽灵交易者策略(附源代码)
  7. 8 Regular Expressions You Should Know
  8. 资深架构专家讲解微服务治理的架构演进
  9. linux下make 文件写法之简单函数调用
  10. Qt中采用多线程实现Socket编程
  11. chrome调式工具
  12. IT界那些性感的让人尖叫的程序员
  13. QQ在线客服聊天功能
  14. 网站的权重怎么计算以及网站降权的分析处理方法
  15. 安卓系统AOSP源码修改入门
  16. 中国版权力的游戏构思
  17. P4850 [IOI2009]葡萄干raisins 记忆化搜索
  18. python将数据导出为csv文件时,出现PermissionError: [Errno 13] Permission denied:问题
  19. C语言如何打开txt文件
  20. 显示器接服务器后黑屏,笔记本外接显示器黑屏怎么修复_笔记本外接显示器后黑屏的处理方法...

热门文章

  1. C# WPF MVVM 实战 – 5- 用绑定,通过 VM 设置 View 的控件焦点
  2. 网页源文件代码隐藏的代码(转)
  3. forward和include的区别详解
  4. 从开发平台到智能供应链,AI技术如何推动企业智能化升级?
  5. 小白Mybatis学习笔记,mybatis入门
  6. Java实现读Chuck数据
  7. 【去哪儿旅行】产品分析报告
  8. 变频器调速工作原理实训装置QY-SP12
  9. 高校医科能转专业去计算机工科,转专业详细(2017最新版)想
  10. android硬件抽象层(HAL)详解