刚接触不久iOS开发,拖拉拽开始学习,代码还没接触过,但还算看的半懂!

做成动画扩散效果,这图不是动态的,是我直接截图下来的;

拿别人的代码自己删改了一些,然后加一些自己理解的注释上去,就成这样了!记录下来

1. 在图片名 那里加入一张自己文件中的图片名,

2.如果你的动图中间不想要图片,就把在动图中间加入了图片这句下的代码注释掉,把没有加入图片这句下的代码放开注释就可以了

import UIKitclass ViewController: UIViewController {private let radarAnimation = "radarAnimation"   //对象1private var animationLayer: CALayer?        //对象2private var animationGroup: CAAnimationGroup?       //对象3private var imageview : UIImageView!    //定义图片viewoverride func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//没有加入图片//let first = makeRadarAnimation(showRect: CGRect(x: 120, y: 200, width: 150, height: 150), isRound: true)    //调用 方法:makeRadarAnimation(...)// view.layer.addSublayer(first)   //显示动画 调用显示//在动图中间加入了图片imageview = UIImageView(frame: CGRect(x: 120, y: 200, width: 150, height: 150))imageview.image = 图片名   //图片view.addSubview(imageview) //把图片放到view中去let imagev = makeRadarAnimation(showRect: imageview.frame, isRound: true)view.layer.insertSublayer(imagev, below: imageview.layer) //动画显示 将图片压后放后放}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}//动作-开始 按钮@IBAction func startAction(_ sender: UIButton) {animationLayer?.add(animationGroup!, forKey: radarAnimation)}//动作-停止 按钮@IBAction func stopAction(_ sender: UIButton) {animationLayer?.removeAnimation(forKey: radarAnimation)}// 动态波的方法private func makeRadarAnimation(showRect: CGRect, isRound: Bool) -> CALayer {// 1. 一个动态波let shapeLayer = CAShapeLayer()shapeLayer.frame = showRect// showRect 最大内切圆shapeLayer.path = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: showRect.width, height: showRect.height)).cgPathshapeLayer.fillColor = UIColor.white.cgColor    //波纹颜色shapeLayer.opacity = 0.0    // 默认初始颜色透明度animationLayer = shapeLayer     //全局对象2 animationLayer// 2. 创建动画组 from -> to 透明比例过渡let opacityAnimation = CABasicAnimation(keyPath: "opacity")opacityAnimation.fromValue = NSNumber(floatLiteral: 1.0)  // 开始透明度opacityAnimation.toValue = NSNumber(floatLiteral: 0)      // 结束时透明底// 3. 波纹动画 起始大小let scaleAnimation = CABasicAnimation(keyPath: "transform")if isRound {scaleAnimation.fromValue = NSValue.init(caTransform3D: CATransform3DScale(CATransform3DIdentity, 1.0, 1.0, 0))      // 缩放起始大小} else {scaleAnimation.fromValue = NSValue.init(caTransform3D: CATransform3DScale(CATransform3DIdentity, 1.5, 1.5, 0))      // 缩放起始大小}scaleAnimation.toValue = NSValue.init(caTransform3D: CATransform3DScale(CATransform3DIdentity, 2.0, 2.0, 0))      // 缩放结束大小// 4. 定义波的运行时间let animationGroup = CAAnimationGroup()animationGroup.animations = [opacityAnimation, scaleAnimation]  //引用opacityAnimation 和 scaleAnimationanimationGroup.duration = 3.0       // 动画执行时间animationGroup.repeatCount = HUGE   // 最大重复animationGroup.autoreverses = falseself.animationGroup = animationGroup    //全局对象3  animationGroupshapeLayer.add(animationGroup, forKey: radarAnimation)  //全局对象1 radarAnimation// 5. 需要重复的动态波,数量,缩放起始点 <=> 创建副本let replicator = CAReplicatorLayer()replicator.frame = shapeLayer.boundsreplicator.instanceCount = 4replicator.instanceDelay = 1.0replicator.addSublayer(shapeLayer)return replicator}}

参考来源:https://blog.csdn.net/xxh0307/article/details/80069007

swift 的水波动画或雷达动画效果相关推荐

  1. 【Android App】Vulkan实现宇宙中旋转雷达动画效果(附源码和原始视频 超详细必看)

    需要源码请点赞关注收藏后评论区留言私信~~~ 一.Vulkan简介 Vulkan是一个跨平台的图形绘制接口,被称为下一代OpenGL,因为尽管OpenGL提供了丰富的图形API,但他在底层实现的C代码 ...

  2. 万字长文!View的进阶,自定义一款自带动画的雷达图

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 关注订阅号「程序员小乐」,收看更多精彩内容 每日英文 You can't change the past, but you ca ...

  3. View的进阶,自定义一款自带动画的雷达图

    /   今日科技快讯   / 近日工信部发放四张5G商用牌照,中国联通.中国移动.中国电信和中国广播电视网络有限公司各得到一张牌照.中国的5G商用元年正式开启.5G牌照的发放,将推升产业链的成熟.加快 ...

  4. Android 动画之View动画效果和Activity切换动画效果

    View动画效果: 1.>>Tween动画 通过对View的内容进行一系列的图形变换(平移.缩放.旋转.透明度变换)实现动画效果,补间动画需要使用<set>节点作为根节点,子节 ...

  5. Android动画开发——Animation动画效果

    动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面 ...

  6. Unity3d中使用自带动画系统制作下雨效果(一)

    之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始. 使用自带动画系统制作下雨效果. 先制作下雨的雨滴涟漪. 步 ...

  7. html首页 slider图片切换效果,jQuery插件Slider Revolution实现响应动画滑动图片切换效果...

    jQuery插件Slider Revolution实现响应动画滑动图片切换效果 2018-12-31 编程之家 https://www.jb51.cc 这是一款非常强大的内容切换插件,它基于jQuer ...

  8. CAReplicatorLayer复制Layer和动画, 实现神奇的效果

    今天我们看下CAReplicatorLayer, 官方的解释是一个高效处理复制图层的中间层.他能复制图层的所有属性,包括动画. 一样我们先看下头文件 @interface CAReplicatorLa ...

  9. Unity3D 4.x怎样实现动画的Ping Pong效果

    近期在看Unity官方的Stealth项目教学视频.视频使用的是Unity旧的版本号,而我如今正在使用的是Unity 4.5,动画系统的操作全然不同了.依照视频的方式根本无法设置动画的Ping Pin ...

  10. Android App开发动画特效之实现百叶窗动画和马赛克动画效果实战演示(附源码和演示视频 可直接使用)

    需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.实现百叶窗动画 合理运用图层规则可以实现酷炫的动画效果,比如把图片分割成一条一条,接着每条都逐渐展开,这便产生了百叶窗动画,把图片等分为若干小方格 ...

最新文章

  1. 除了缺少点创意,GPT-3写出了及格的大学毕业论文,只需20分钟
  2. nyquist图怎么画matlab,用MATLAB绘制Nyquist图
  3. 【Codeforces 986B】Petr and Permutations
  4. MySQL 可重复读,差点背上一个 P0 事故!
  5. 依赖注入:一个Mini版的依赖注入框架
  6. ae中心点重置工具_AE中图形绘制的6大技巧,简单易操作
  7. ubuntu系统启动qtceator时提示:Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库...
  8. springmvc spring mybatis结合 - 代码共享
  9. Leetcode 814.二叉树剪枝
  10. java poi jar包下载_poi.jar包下载
  11. 预加重/去加重/直流滤波
  12. 威纶通与三菱PLC条码枪解码程序 本程序是威纶通触摸屏USB接头直接插条形码扫码枪
  13. 手把手教你十分钟学会使用小程序云存储
  14. 解决hbase客服端连接服务端不报错就是一直连不上的问题
  15. 成功真正需要什么:情商德商及体商 别高估智商
  16. oracle job remove,如何删除oracle Job命令实例
  17. ETC是什么,ETC系统主要有哪几部分构成?
  18. 用代码写个烟花之基础版
  19. jquery之empty()方法详解
  20. nginx的作用与原理

热门文章

  1. 2021机器学习面试必考面试题汇总(附答案详解)
  2. rxbus 源码_RxBus 这个 RxBus 稳如老狗 @codeKK Android开源站
  3. 通过手机获取微信公众号封面
  4. 小程序中视频作为页面背景
  5. Python中机器学习模型的几种保存方式
  6. python中几种去重的方法
  7. PS基础操作之图像处理(三)
  8. PPT学习笔记和技巧分享【持续更新ing】
  9. css点击按钮改变样式
  10. PS更换证件照背景颜色