音量振动条

效果图:

假设实现?

创建3个layer。按顺序播放y轴缩放动画

利用CAReplicatorLayer实现

1、什么是CAReplicatorLayer?

一种能够复制自己子层的layer,而且复制出来的layer和原生子层有相同的属性,位置。形变,动画。

2、CAReplicatorLayer属性

  • instanceCount: 子层总数(包含原生子层)
  • instanceDelay: 复制子层动画延迟时长
  • instanceTransform: 复制子层形变(不包含原生子层)。每一个复制子层都是相对上一个。
  • instanceColor: 子层颜色,会和原生子层背景色冲突,因此二者选其一设置。
  • instanceRedOffset、instanceGreenOffset、instanceBlueOffset、instanceAlphaOffset: 颜色通道偏移量。每一个复制子层都是相对上一个的偏移量。

假设利用CAReplicatorLayer实现

1.首先创建复制layer,音乐振动条layer加入到复制layer上,然后复制子层就好了。

CAReplicatorLayer *layer = [CAReplicatorLayer layer];

    layer.frame = CGRectMake(50, 50, 200, 200);

    layer.backgroundColor = [UIColor lightGrayColor].CGColor;

    [self.view.layer addSublayer:layer];

2.先创建一个音量振动条,而且设置好动画,动画是绕着底部缩放。设置锚点

    CALayer *bar = [CALayer layer];

    bar.backgroundColor = [UIColor redColor].CGColor;

    bar.bounds = CGRectMake(0, 0, 30, 100);

    bar.position = CGPointMake(15, 200);

    bar.anchorPoint = CGPointMake(0.5, 1);

    [layer addSublayer:bar];

    CABasicAnimation *anim = [CABasicAnimation animation];

    anim.keyPath = @"transform.scale.y";

    anim.toValue = @(0.1);

    anim.autoreverses = YES;

    anim.repeatCount = MAXFLOAT;

    [bar addAnimation:anim forKey:nil];

3.复制子层

    // 设置4个子层。3个复制层
layer.instanceCount = 4; // 设置复制子层的相对位置。每一个x轴相差40
layer.instanceTransform = CATransform3DMakeTranslation(40, 0, 0); // 设置复制子层的延迟动画时长
layer.instanceDelay = 0.3;

Demo实例

https://github.com/Esdeath/volumeBar

最新文章

  1. webapi 通过dynamic 接收可变参数
  2. WCF初探-21:WCF终结点(endpoint)
  3. Git基础 - git blame
  4. CI框架 输入类
  5. 最大似然估计(MLE)和最大后验概率(MAP)
  6. hdu 1392 Surround the Trees
  7. PySpark调用自定义jar包
  8. Java发送邮件的简单实现
  9. swing常用布局
  10. 需要考虑的9个SEO实践
  11. 搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)
  12. ztree 获取根节点
  13. 由清除float原理到BFC
  14. iTop软件功能分析以及优缺点比较
  15. 手写数字识别 ----在已经训练好的数据上根据28*28的图片获取识别概率(基于Tensorflow,Python)
  16. 有道云笔记Markdown上传本地图片的方法
  17. Debian系统 + XFCE桌面初识,基础环境搭建
  18. ios OC 关键字 copy,strong,weak,assign的区别
  19. drawImg、x5浏览器、react
  20. 小改造gotty,使之适合接收经过一层加密的URL

热门文章

  1. svn 学习
  2. [APIO2009]会议中心(贪心)
  3. POJ——T 1986 Distance Queries
  4. Varnish 问题点 与 技术方案 Varnish 优劣分析
  5. Struts(21)OGNL具体解释
  6. CF 558A(Lala Land and Apple Trees-暴力)
  7. IComparable接口实现自定义类型的排序
  8. 流量数据iftop命令
  9. Spring Security Architecture--官方
  10. HIVE的几种优化