Swift版本仿网易云音乐播放音乐动画效果

个人技术博客站欢迎您

创建一个继承于UIView的视图我们叫他XTActivityView

        /// 立方柱的个数
    var numberOfRect = 0;
        /// 立方柱的颜色
    var rectBackgroundColor: UIColor?
        /// 立方柱初始化大小
    var defaultSize: CGSize?
        /// 立方柱之间的间距
    var space: CGFloat = 0.0

进行初始化

override init(frame: CGRect) {
        super.init(frame: frame)
        self.createDefaultAttribute(frame)
    }
func createDefaultAttribute(frame: CGRect) -> Void {
        numberOfRect = 6;
        self.rectBackgroundColor = UIColor.blackColor()
        space = 1;
        defaultSize = frame.size
    }

提供开始和结束接口(即创建和移除)

func startAnimation() {
        self.addRect()
    }
func stopAnimation() {
        self.removeRect()
    }

添加矩形

    func addRect() -> Void {
        self.removeRect()
        self.hidden = false
        for  i in 0...numberOfRect {
        let x = (CGFloat)(i) * (5 + space)
        let rView = UIView.init(frame: CGRectMake(x, 0, 5, defaultSize!.height))
            rView.backgroundColor = rectBackgroundColor
            rView.layer.addAnimation(self.addAnimateWithDelay((Double)(i) * 0.2), forKey: "TBRotate")
        self.addSubview(rView)
        }
    }

动画效果

func addAnimateWithDelay(delay: Double) -> CAAnimation {
        let animation = CABasicAnimation.init(keyPath: "transform.rotation.x")
        animation.repeatCount = MAXFLOAT;
        animation.removedOnCompletion = true;
        animation.autoreverses = false;
        animation.timingFunction = CAMediaTimingFunction.init(name: kCAMediaTimingFunctionLinear)
        animation.fromValue = NSNumber.init(float: 0)
        animation.toValue = NSNumber.init(double: M_PI)
        animation.duration = (Double)(numberOfRect) * 0.2;
        animation.beginTime = CACurrentMediaTime() + delay;
        return animation;
    }

移除矩形

func removeRect() -> Void {
        if self.subviews.count > 0 {
            self.removeFromSuperview()
        }
        self.hidden = true
    }

在控制器中调用

self.view.backgroundColor = UIColor.whiteColor()
let xt = XTActivityView.init(frame: CGRectMake(0, 10, 80, 15))
xt.startAnimation()
self.navigationItem.rightBarButtonItem = UIBarButtonItem.init(customView: xt)
xt.performSelector(Selector("stopAnimation"), withObject: nil, afterDelay: 5)

各位大大我是demo地址 点赞喔

个人技术博客站欢迎您

时间: 2024-12-25 12:06:32

Swift版本仿网易云音乐播放音乐动画效果的相关文章

仿网易云音乐的播放进度条

仿网易云音乐的播放进度条,有三种状态:播放.暂停和拖动,只是实现了动画和主要的交互逻辑,其他细节(如暂停音乐的播放等)还需要自己完善: DKPlayerBar 是继承于UIControl的,如果想获取播放\暂停的事件建议用标准的addTarget方法: [playerBar addTarget:self action:@selector(playOrPause) forControlEvents:UIControlEventValueChanged]; 然后在DKPlayerBar里监听DKPl

《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

CloudReader 一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读类的开源项目.项目采取的是Retrofit + RxJava + MVVM-DataBinding架构开发.开发中所遇到的各种问题已归纳在这里. github地址:CloudReader What can be learned about this project 那么,从本项目中你能学到哪些知识呢? 1.干货集中营内容与豆瓣电影书籍内容. 2.高仿网易云音乐歌单

Android实战之酷云-->仿网易云音乐开发

我的个人网站 Xuejianxin's Blog Google Blog Xuejianxin's Blog Android自定义View学习 Android自定义View之常用工具源码分析 Android自定义View之onMeasure()源码分析 Android自定义View之onLayout()源码分析 Android自定义View之对TouchEvent的处理 Android自定义View之draw原理分析 如果觉得我的文章还行的话,也可以关注我的公众号,里面也会第一时间更新,并且会有

C# WPF 低仿网易云音乐(PC)歌词控件

原文:C# WPF 低仿网易云音乐(PC)歌词控件 提醒:本篇博客记录了修改的过程,废话比较多,需要项目源码和看演示效果的直接拉到文章最底部~ 网易云音乐获取歌词的api地址 http://music.163.com/api/song/media?id=歌曲ID 填写歌曲的id即可获取到json格式的数据(歌曲ID获取的方法是:点击分享按钮>其他分享>复制链接,就可以在链接中看到了): {"songStatus":0,"lyricVersion":10,

仿网易云音乐 专辑图片折叠轮播

仿网易云音乐 专辑图片折叠轮播 先不多说现上一张效果图 首先简述一下实现原理 1.首先让我们的imageview**动起来** 其实是不断的.invalidate();函数 让他不断的调用ondarw函数 (显然我们不必要不断的调用ondarw函数 只有在我们让他动的时候调用即可 所以我们要声明一个变量记录change记录是否产生动画) 2.实现我们的可折叠效果 Matrix的setPolyToPoly方法的使用 可参考(http://blog.csdn.net/lmj623565791/art

高仿网易云音乐客户端的Home页面切换Tabhost-IT蓝豹

1.高仿网易云音乐客户端的Home页面切换Tabhost 高仿网易云音乐客户端的Home页面切换Tabhost,并且三角形是透明的,实现方式,自定义AnimTabsView继承 RelativeLayout 里面对当前选中的item 处理 三角形变成透明效果,即在onDraw 里面对三角形图片经行透明度处理,AnimTabsView提供 setOnAnimTabsItemViewChangeListener方法的onChange()用来监听点击切换tabhost. 下面主要是AnimTabsVi

Android自定义View——仿vivo i管家病毒扫描动画效果

技术是永无止境的,如果真的爱技术,那就勇敢的坚持下去.我很喜欢这句话,当我在遇到问题的时候.当我觉得代码枯燥的时候,我就会问自己,到底是不是真的热爱技术,这个时候,我心里总是起着波澜,我的答案是肯定的,我深深的爱着这门技术. 今天我们继续聊聊Android的自定义View系列.先看看效果吧: 这个是我手机杀毒软件的一个动画效果,类似于雷达搜索,所以用途还是很广泛的,特别是先了解一下这里的具体逻辑和写法,对技术的进步一定很有用. 先简单的分析一下这里的元素,主要有四个圆.一个扇形.还有八条虚线.当

仿饿了么+点餐动画效果

仿饿了么+点餐动画效果 高仿饿了么安卓客户端,有相关方面需求的同学可以参考参考,不喜勿喷... 下载地址:http://www.devstore.cn/code/info/727.html 运行截图:   

仿网易云音乐播放器(磁盘转圈、背景虚化等等)

先看效果,CSDN的git传上去总是不动.不知道为什么. 主要思路: 1 . 除了 開始/暂停 .上一首.下一首 这三个icon.你看到的是一个ViewGroup ,这个ViewGroup里面有圆形封面.黑色圈圈磁盘.唱针,高斯模糊背景图 2. 凝视掉了磁盘一起转动的效果,如今的方案不是最好的,建议若是想实现,能够把圆形封面和磁盘合并成一张图(最好在CicicleImageView这里面做).给一个旋转动画.两个动画.两个View,帧的频率不会那么高 3.凝视掉了上一首.下一首切换的时候渐变的动