一 准备

我们现在看看我们要做一个什么样的东西

观看地址:http://v.youku.com/v_show/id_XNzI4ODY2Mjky.html

布局

通过上面这张图我们可以看出整个demo有两个视图,视图一用来播放音乐,视图二用来选择频道。

视图一

ImageView用来显示音乐的图片

TableView用来显示音乐列表

Progress用来显示播放进度

Label用来显示播放时间

Button用来切换视图

视图二

Lbale显示“选择频道”

Tableview用来显示频道列表

知识要点

组件:

ImageView

TableView

TableViewCell

Progress

Label

Button

MediaPlayer

知识点:

视图之间的跳转,传参,回跳

协议

异步获取数据

Json解析

动画效果

豆瓣API

频道列表

http://www.douban.com/j/app/radio/channels

歌曲列表

http://douban.fm/j/mine/playlist?channel=0

频道列表的json数据参考

{
"channels": [
{
"name_en": "Personal Radio",
"seq_id": ,
"abbr_en": "My",
"name": "私人兆赫",
"channel_id":
},
{
"name": "华语",
"seq_id": ,
"abbr_en": "",
"channel_id": "",
"name_en": ""
}
]
}

歌曲列表的json数据参考

{
"r": ,
"is_show_quick_start": ,
"song": [
{
"album": "/subject/7153475/",
"picture": "http://img3.douban.com/lpic/s7022222.jpg",
"ssid": "cd19",
"artist": "Herman's Hermits",
"url": "http://mr3.douban.com/201406201304/a687b5d793bb3233e243f05a3e502b20/view/song/small/p2087018.mp3",
"company": "Warner",
"title": "Smile Please",
"rating_avg": ,
"length": ,
"subtype": "",
"public_time": "",
"songlists_count": ,
"sid": "",
"aid": "",
"sha256": "5f6ba79e1463c1b54d0be17d090d4ee09d55121a91905ddd2217b0ba458ca7a2",
"kbps": "",
"albumtitle": "The Best of",
"like": ""
},
{
"album": "/subject/1947603/",
"picture": "http://img3.douban.com/lpic/s4458282.jpg",
"ssid": "b80e",
"artist": "Pompeii",
"url": "http://mr3.douban.com/201406201304/f8ea9c7ba0793030c8c486152d51527e/view/song/small/p2087210.mp3",
"company": "Warner",
"title": "Ten Hundred Lights",
"rating_avg": 3.81894,
"length": ,
"subtype": "",
"public_time": "",
"songlists_count": ,
"sid": "",
"aid": "",
"sha256": "761fb793fd0571663c469a10bf9fc3bf0e2e3b329ecc5dddad8a2d28fd7ac0c7",
"kbps": "",
"albumtitle": "Assembly",
"like": ""
}
]
}

在下一节,我们将一起分享一下怎么在storyboard中进行布局操作。

Swift实战-豆瓣电台(一)准备的更多相关文章

  1. Swift实战-豆瓣电台(九)简单手势控制暂停播放(全文完)

    Swift实战-豆瓣电台(九)简单手势控制暂停播放 全屏清晰观看地址:http://www.tudou.com/programs/view/tANnovvxR8U/ 这节我们主要讲UITapGestu ...

  2. Swift实战-豆瓣电台(八)播放进度与时间

    视频观看地址:http://www.tudou.com/programs/view/4mEtz8S72k0/?resourceId=399000367_06_02_99 这节主要内容是NSTimer, ...

  3. Swift实战-豆瓣电台(七)显示动画

    youku观看地址http://v.youku.com/v_show/id_XNzMxODQzNDIw.html 这是一个很酷的动画效果.特别是数据多的时候 知识点 在单元格(Cell)显示方法中设置 ...

  4. Swift实战-豆瓣电台(六)视图跳转,传参及回跳

    youku观看地址:http://v.youku.com/v_show/id_XNzMxMzQ3MDcy.html 要点 在ChannelController里面声明一个代理 这个代理遵循我们自定义的 ...

  5. Swift实战-豆瓣电台(五)播放音乐

    观看地址 http://v.youku.com/v_show/id_XNzMwODM0MzI0.html 在这节里面,我们简单学习了一下MediaPlayer的使用 引入媒体框架 import Med ...

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

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

  7. Swift实战-豆瓣电台(三)获取网络数据

    观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboard中的组件在类中进行绑定.然后写了一个类用来获取网 ...

  8. Swift实战-豆瓣电台(二)界面布局

    观看地址 http://v.youku.com/v_show/id_XNzMwMDg4NzAw.html 这节的内容主要是storyboard的操作. 有以下几个知识点 1 TableView的Dat ...

  9. [Swift A] - 实战-豆瓣电台总结

    最近在学Swift,也是刚刚开始.这里对自己最近所学做个简单的总结:视频和代码都在下面 http://pan.baidu.com/s/1sjHd5qX 1.String和NSString的不同 Swi ...

随机推荐

  1. jQuery Questions:Front-end Developer Interview Questions

    Explain "chaining". Chaining allows us to run multiple jQuery methods (on the same element ...

  2. Windows2008 R2修改3389端口教程

    默认的3389端口有必要修改么,这个端口,我建议是修改一下为好,最好改大一点,这样安全性会高一点,但然面对高手级攻击,就没有用了,通常高手级过NMAP扫描一个你的IP地址,端便全然显现出来了,好了,下 ...

  3. poj1979

    #include<stdio.h>int map[4][4]={'.','.','.','.',      '#','.','.','.',      '.','#','.','.',   ...

  4. Git学习笔记(持续更新)

    1.强制同步为远程的代码 远程仓库回退了commit的情况下(第2条描述之情况),强制同步远程的代码到本地 #更新远程最新的所有代码,但是不merge或者rebase git fetch --all ...

  5. php + ajax + html 简单跨域问题

    XMLHttpRequest cannot load http://localhost:8080/abc/index.php. No 'Access-Control-Allow-Origin' hea ...

  6. SHELL 八大扩展

    最近在梳理bash知识的的过程中,有幸阅读了man bash文档,一时间犹如醍醐灌顶一般,很多当初不明白的地方都豁然开朗,现在就其中的一点做一分享,同时也为man bash做一下广告,当你面对bash ...

  7. javaScript中的单引号与双引号

    javaScript中的单引号与双引号没有什么区别.但因为xhtml规范要求所有xhtml属性要用双引号括起来.所以在javaScript中使用单引号. var html = '<h2 clas ...

  8. QWidget 键盘事件 焦点(QApplication源码)

    在Qt中,键盘事件和QWidget的focus密不可分:一般来说,一个拥有焦点(focus)的QWidget或者grabKeyboard()的QWidget才可以接受键盘事件. 键盘事件派发给谁? 如 ...

  9. [LeetCode]题解(python):081 - Search in Rotated Sorted Array II

    题目来源 https://leetcode.com/problems/search-in-rotated-sorted-array-ii/ Follow up for "Search in ...

  10. nodejs技术面试问题整理

    1.meteor 是如何解决多回调的问题 参考 http://www.cnblogs.com/meteorcn/p/MeteorJS_Async_Fiber_Future_Wrap.html 2.一个 ...