//
//  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.
    }

}

 

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

  1. Swift实战-豆瓣电台(四)歌曲列表的展现

    观看地址 http://v.youku.com/v_show/id_XNzMwNDE0OTA4.html 这节的主要内容是如何利用cell展现获取到的数据. 首先申明两个数组来储存我们获取到的数据 v ...

  2. 【音乐App】—— Vue-music 项目学习笔记:歌曲列表组件开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 当前歌曲播放列表 添加歌曲 ...

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

    经常用到的图片插件演示jQuery十种不同的切换图片列表动画效果 在线演示 下载地址 实例代码 <!DOCTYPE html> <html lang="en" c ...

  4. jQuery演示10种不同的切换图片列表动画效果以及tab动画演示 2

    很常用的一款特效纯CSS完成tab实现5种不同切换对应内容效果 实例预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  5. ANDROID_MARS学习笔记_S01原始版_020_Mp3player001_歌曲列表

    一.项目设计 二.歌曲列表简介 1.利用java.net.HttpURLConnection以流的形式下载xml文件为String 2.自定义ContentHandler-->Mp3ListCo ...

  6. Android VLC播放器二次开发3——音乐播放(歌曲列表+歌词同步滚动)

    今天讲一下对VLC播放器音频播放功能进行二次开发,讲解如何改造音乐播放相关功能.最近一直在忙着优化视频解码部分代码,因为我的视频播放器需要在一台主频比较低的机器上跑(800M主频),所以视频解码能力受 ...

  7. Swift - transform.m34动画示例

    Swift - transform.m34动画示例 效果 源码 https://github.com/YouXianMing/Swift-Animations // // CATransform3DM ...

  8. Android 自定义 ListView 上下拉动“刷新最新”和“加载更多”歌曲列表

    本文内容 环境 测试数据 项目结构 演示 参考资料 本文演示,上拉刷新最新的歌曲列表,和下拉加载更多的歌曲列表.所谓"刷新最新"和"加载更多"是指日期.演示代码 ...

  9. Android 自定义 ListView 显示网络上 JSON 格式歌曲列表

    本文内容 环境 项目结构 演示自定义 ListView 显示网络上 JSON 歌曲列表 参考资料 本文最开始看的是一个国人翻译的文章,没有源代码可下载,根据文中提供的代码片段,自己新建的项目(比较可恶 ...

随机推荐

  1. CentOS7 防火墙配置-详解

    CentOS 7 防火墙配置 1.防火墙的简述 防火墙对服务器起到一定的保护作用,所以了解一些相关的操作是很有必要的. 在CentOS 7.x中,有了一种新的防火墙策略叫FireWall , 在6.x ...

  2. Devexpress TreeList 展开和折叠当前选中节点

    1.展开: private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) ...

  3. bzoj 3615: MSS

    Description 小C正在出一道题...因为语文水平有限他想不出复杂的背景,所以以下就是题意了. 平面上有N个点,开始时每个点属于一个不同的集合.不妨设点Pi属于集合Si.请维护数据结构支持以下 ...

  4. 面试总结之Linux/Shell

    Linux Linux cshrc文件作用 Linux如何起进程/查看进程/杀进程 Linux 文件755 代表什么权限 Linux辅助线程 Linux进程间通信方法 pipeline,msgq... ...

  5. 接口自动化(五)--打印log到文档

    这一部分实现比较简单,直接上代码: import logging class Logger(): def __init__(self,content,*raw): self.content = con ...

  6. js常用代码整理

    引用js <script type="text/javascript" src="js/jquery-1.11.2.min.js"></scr ...

  7. 8.3.2018 1 Quick and dirty 快而脏的快餐

    Quick and dirty  快而脏的快餐 BEIJING  北京 Food delivery is a booming business. Waste is piling up, too  送餐 ...

  8. (4)activiti工作流引擎之uel表达式

    有了前面几章,我们肯定有一定的困惑,activiti如何与实际业务整合,比如一条采购单,如何跟一个流程实例互相关联起来? 这里就需要使用到activiti启动流程实例时设置一个流程实例的busines ...

  9. WSAStartup function

    [WSAStartup function] Parameters wVersionRequested [in] The highest version of Windows Sockets speci ...

  10. 03-使用html静态页面展示执行效果

    使用工作流框架可以做什么事情?写代码呗,没那么简单.