swift - 歌曲列表动画

//
//  ViewController.swift
//  songAnimation
//
//  Created by su on 15/12/10.
//  Copyright © 2015年 tian. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
        super.viewDidLoad()
        let windowWidth = UIScreen.mainScreen().bounds.size.width
        let frameRect = self.view.frame
        //创建背景
        var bacgroundView = UIImageView(frame: frameRect)
        bacgroundView.image = UIImage(named: "background")
        self.view.addSubview(bacgroundView)
       
        let arrowView = UIImageView(frame: CGRect(x: windowWidth, y: 64, width: windowWidth, height: 45))
        arrowView.image = UIImage(named: "arrow")
        self.view.addSubview(arrowView)
       
        let ministryView = UIImageView(frame: CGRect(x: windowWidth, y: 110, width: windowWidth, height: 26))
        ministryView.image = UIImage(named: "ministry")
        self.view.addSubview(ministryView)
       
        let addButon = UIButton(frame: CGRect(x: windowWidth, y: 160, width: windowWidth, height: 28))
        addButon.setImage(UIImage(named: "add-button"), forState: UIControlState.Normal)
        //设置按钮的高亮状态
        addButon.setImage(UIImage(named: "add-button-pressed"), forState: UIControlState.Highlighted)
        self.view.addSubview(addButon)
        //歌曲列表
        let firstRow = UIImageView(frame: CGRect(x: windowWidth, y: 190, width: windowWidth, height: 80))
        firstRow.image = UIImage(named: "1st-row")
        self.view.addSubview(firstRow)
       
        let secondRow = UIImageView(frame: CGRect(x: windowWidth, y: 190 + 80 , width: windowWidth, height: 80))
        secondRow.image = UIImage(named: "2nd-row")
        self.view.addSubview(secondRow)
       
        let thirdRow = UIImageView(frame: CGRect(x: windowWidth, y: 190 + 160, width: windowWidth, height: 38))
        thirdRow.image = UIImage(named: "3rd-row")
        self.view.addSubview(thirdRow)
       
        let fourRow = UIImageView(frame: CGRect(x: windowWidth, y: 190 + 240, width: windowWidth, height: 80))
        fourRow.image = UIImage(named: "4th-row")
        self.view.addSubview(fourRow)
       
        let fiveRow = UIImageView(frame: CGRect(x: windowWidth, y: 190 + 320, width: windowWidth, height: 80))
        fiveRow.image = UIImage(named: "5th-row")
        self.view.addSubview(fiveRow)
       
        //启动延时时间
        let initaDelay = 1.0
        //间隔时间
        let stutter = 0.15
        //动画执行
        let duration = 1.1
        //箭头动画
       
        UIView.animateWithDuration(duration, delay: initaDelay, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
        arrowView.frame = CGRect(x: 0, y: 64, width: windowWidth, height: 45)
            }, completion: nil)
        //ministry
        UIView.animateWithDuration(duration, delay: initaDelay + 1 * stutter, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
            ministryView.frame = CGRect(x: 0, y: 110, width: windowWidth, height: 26)
            }, completion: nil)
       
        //add song
        UIView.animateWithDuration(duration, delay: initaDelay + 2 * stutter, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
            addButon.frame = CGRect(x: 0, y: 160, width: windowWidth, height: 45)
            }, completion: nil)
       
        //歌曲列表
       
        UIView.animateWithDuration(duration, delay: initaDelay + 3 * stutter, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
            firstRow.frame = CGRect(x: 0, y: 190, width: windowWidth, height: 80)
            }, completion: nil)

UIView.animateWithDuration(duration, delay: initaDelay + 4 * stutter, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
            secondRow.frame = CGRect(x: 0, y: 190 + 80, width: windowWidth, height: 80)
            }, completion: nil)
       
        UIView.animateWithDuration(duration, delay: initaDelay + 5 * stutter, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
            thirdRow.frame = CGRect(x: 0, y: 190 + 160, width: windowWidth, height: 80)
            }, completion: nil)
        UIView.animateWithDuration(duration, delay: initaDelay + 6 * stutter, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
            fourRow.frame = CGRect(x: 0, y: 190 + 240, width: windowWidth, height: 80)
            }, completion: nil)
        UIView.animateWithDuration(duration, delay: initaDelay + 7 * stutter, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: UIViewAnimationOptions.AllowAnimatedContent, animations: { () -> Void in
            //运动闭包
            fiveRow.frame = CGRect(x: 0, y: 190 + 320, width: windowWidth, height: 80)
            }, completion: nil)

}

override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

时间: 2024-08-25 16:02:50

swift - 歌曲列表动画的相关文章

歌曲列表和频道列表

上回我们实现了一个音乐播放器的基本界面,现在我们给播放器加上歌曲以及频道列表: 实现列表功能实际上就是配置UITableView控件,配置UITableView需要继承数据源协议和委托协议两个协议: 首先拖线创建tableview的属性并继承两个协议: 其中数据源协议里有两个方法是必须实现的: 然后设置table的数据源和代理: 简单三步,歌曲列表就完成啦!- 接着是频道列表. 频道列表的UI如下,配置方法同上,值得一提的是 还可以直接用拖线的方法直接绑定数据源和委托: 新建一个类作为这个vie

android音乐播放器开发 SweetMusicPlayer 加载歌曲列表

上一篇写了播放器的整体实现思路,http://blog.csdn.net/huweigoodboy/article/details/39855653,现在来总结下加载歌曲列表. 比较好的实现思路就是,自己维护一个SQLite数据库,然后音乐信息都从sd卡上扫描,好处有很多,但是这样做的话代码量会比较大,写了一段扫描sd卡的代码,然后发现扫描音乐的速度简直慢的惊人,可能自己的目录太多,太深,目前还没想到一个比较好的算法去快速扫描sd卡. 楼主比较偷懒,android自己本身有一个关于媒体信息的数据

jQuery演示10种不同的切换图片列表动画效果

经常用到的图片插件演示jQuery十种不同的切换图片列表动画效果 在线演示 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <!DOCTYPE html> <html lang="en" class="no-

WPF实现QQ群文件列表动画(二)

上篇(WPF实现QQ群文件列表动画(一))介绍了WPF实现QQ群文件列表动画的大致思路,结合我之前讲过的WPF里ItemsControl的分组实现,实现起来问题不大,以下是效果图: 其实就是个ListBox,使用了它的分组样式,而分组样式其实就是一组Expander,这就让我有机会使用自定义的Expander样式,这个Expander样式已经实现了动画伸缩.后台做的就相当简单了,只需要给这个ListBox指定ItemSource并且给它添加一个分组依据就行了. 注意一个小细节:我把自带的Head

Android ListView 和 Adapter 从本地/网络获取歌曲列表

本文内容 环境 项目结构 演示1:SimpleAdapter 演示2:BaseAdapter 演示3:customlazylist 演示4:customcompletelazylist 本文只给出演示概要,代码太多,贴出来意义不大,自己下载调试一下,点击此处下载. 本文通过四个示例,循序渐进地演示,将歌曲列表加载到 ListView 控件,歌曲列表,包括缩略图.歌手名.歌曲名等信息,或存放在本地,或以 JSON 形式存放在网络. 环境 Windows 2008 R2 64 位 Eclipse A

Android 自定义 ListView 显示网络歌曲列表

本文内容 环境 项目结构 演示自定义 ListView 显示网络歌曲列表 参考资料 本文最开始看的一个国人的文章,没有源代码,根据文中提供的源代码,自己新建的项目(最可气的是,没有图标图片资源,只能自己乱编),但程序不是很稳定,有时能显示出列表中的缩略图,有时显示不出来,还在主线程访问了网络.后看文章评论,作者给出英文原文链接,本来想这下没事了吧,结果下载源代码运行后,还是有问题~仔细看英文原文,原来他也是根据 Github 上一个项目的基础上搞的,只是添加了式样,以及显示完整的歌曲列表,包括歌

android音乐播放器开发 SweetMusicPlayer 载入歌曲列表

上一篇写了播放器的总体实现思路,http://blog.csdn.net/huweigoodboy/article/details/39855653,如今来总结下载入歌曲列表. 代码地址:https://github.com/huweigoodboy/SweetMusicPlayer 比較好的实现思路就是.自己维护一个SQLite数据库,然后音乐信息都从sd卡上扫描,优点有非常多,可是这样做的话代码量会比較大,写了一段扫描sd卡的代码.然后发现扫描音乐的速度简直慢的惊人,可能自己的文件夹太多,太

Android 自定义 ListView 上下拉动&ldquo;刷新最新&rdquo;和&ldquo;加载更多&rdquo;歌曲列表

本文内容 环境 测试数据 项目结构 演示 参考资料 本文演示,上拉刷新最新的歌曲列表,和下拉加载更多的歌曲列表.所谓"刷新最新"和"加载更多"是指日期.演示代码太多,点击此处下载,自己调试一下. 下载 Demo 环境 Windows 2008 R2 64 位 Eclipse ADT V22.6.2,Android 4.4.3 SAMSUNG GT-I9008L,Android OS 2.2.2 测试数据 本演示的歌曲信息,共有 20 条,包括歌手名.歌曲名.时长.缩

android仿酷狗歌曲列表界面点击右侧字母定位到该字母的集合列表

原文:android仿酷狗歌曲列表界面点击右侧字母定位到该字母的集合列表 源代码下载地址:http://www.zuidaima.com/share/1550463694064640.htm android仿酷狗歌 曲列表界面 点击右侧字母定位到该字母的集合列表,也像类似联系人界面效果