Swift实战-豆瓣电台(四)歌曲列表的展现
观看地址 http://v.youku.com/v_show/id_XNzMwNDE0OTA4.html
这节的主要内容是如何利用cell展现获取到的数据。
首先申明两个数组来储存我们获取到的数据
var tableData:NSArray=NSArray()
var channelData:NSArray=NSArray()
tableData是主界面上歌曲列表要用的数据。所以在func tableView(tableView: UITableView!, numberOfRowsInSection section: Int)这个方法中要返回tableData的数量
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int{
return tableData.count
}
然后我们把tableData中的数据填充到主界面的TableView中
let cell=UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "douban")
let rowData:NSDictionary=self.tableData[indexPath.row] as NSDictionary
cell.text=rowData["title"] as String
cell.detailTextLabel.text=rowData["artist"] as NSString
接着我们在显示缩略图的时候先给一张默认的图片
cell.image=UIImage(named:"detail.jpg")
然后我们去抓取网络图片,同样,是用异步的方式。为了提高性能,我们对获取的图片做了一个缓存
var imageCache = Dictionary<String,UIImage>()
通过图片的地址来缓存UIImage
let url=rowData["picture"] as String
let image=self.imageCache[url] as?UIImage
if !image?{
let imgURL:NSURL=NSURL(string:url)
let request:NSURLRequest=NSURLRequest(URL: imgURL)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {(response:NSURLResponse!,data:NSData!,error:NSError!)->Void in
var img=UIImage(data:data)
cell.image=img
self.imageCache[url]=img
})
}else{
cell.image=image
}
本节高清视频和代码下载地址
http://pan.baidu.com/s/1sjHd5qX
下一节,我们将一起学习一下播放歌曲和展示当前歌曲图片
Swift实战-豆瓣电台系列
Swift实战-豆瓣电台(一)准备
Swift实战-豆瓣电台(二)界面布局
Swift实战-豆瓣电台(三)获取网络数据
Swift实战-豆瓣电台(四)歌曲列表的展现的更多相关文章
- Swift实战-豆瓣电台(九)简单手势控制暂停播放(全文完)
Swift实战-豆瓣电台(九)简单手势控制暂停播放 全屏清晰观看地址:http://www.tudou.com/programs/view/tANnovvxR8U/ 这节我们主要讲UITapGestu ...
- Swift实战-豆瓣电台(八)播放进度与时间
视频观看地址:http://www.tudou.com/programs/view/4mEtz8S72k0/?resourceId=399000367_06_02_99 这节主要内容是NSTimer, ...
- Swift实战-豆瓣电台(七)显示动画
youku观看地址http://v.youku.com/v_show/id_XNzMxODQzNDIw.html 这是一个很酷的动画效果.特别是数据多的时候 知识点 在单元格(Cell)显示方法中设置 ...
- Swift实战-豆瓣电台(六)视图跳转,传参及回跳
youku观看地址:http://v.youku.com/v_show/id_XNzMxMzQ3MDcy.html 要点 在ChannelController里面声明一个代理 这个代理遵循我们自定义的 ...
- Swift实战-豆瓣电台(五)播放音乐
观看地址 http://v.youku.com/v_show/id_XNzMwODM0MzI0.html 在这节里面,我们简单学习了一下MediaPlayer的使用 引入媒体框架 import Med ...
- Swift实战-豆瓣电台(三)获取网络数据
观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboard中的组件在类中进行绑定.然后写了一个类用来获取网 ...
- Swift实战-豆瓣电台(一)准备
一 准备 我们现在看看我们要做一个什么样的东西 观看地址:http://v.youku.com/v_show/id_XNzI4ODY2Mjky.html 布局 通过上面这张图我们可以看出整个demo有 ...
- Swift实战-豆瓣电台(二)界面布局
观看地址 http://v.youku.com/v_show/id_XNzMwMDg4NzAw.html 这节的内容主要是storyboard的操作. 有以下几个知识点 1 TableView的Dat ...
- [Swift A] - 实战-豆瓣电台总结
最近在学Swift,也是刚刚开始.这里对自己最近所学做个简单的总结:视频和代码都在下面 http://pan.baidu.com/s/1sjHd5qX 1.String和NSString的不同 Swi ...
随机推荐
- HOSTS文件详解【win|mac】
hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址. hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的是,计算机的使用者可以直接 ...
- memcached学习笔记4--memcache扩展操作memcached
1. 安装并配置memcache扩展库 找到php.ini文件 添加: extendsion= php_memcache.dll 并把对应的dll文件拷贝到ext目录 2. 使用PHP对Memcahc ...
- Python之list添加新元素、删除元素、替换元素
Python之list添加新元素 现在,班里有3名同学: >>> L = ['Adam', 'Lisa', 'Bart'] 今天,班里转来一名新同学 Paul,如何把新同学添加到现有 ...
- freebsd 禁用root登录ssh并给普通用户登录权限
转自http://www.linux521.com/2009/system/200904/2021.html http://www.myhack58.com/Article/48/67/2011/30 ...
- BulletedList使用及详解
BulletedList是一个让你轻松在页面上显示项目符号和编号格式(Bulledted List)的控件.对于ASP.NET 1.x里要动态显示Bulledted List时,要么自己利用HTML的 ...
- Redis-分布式
package test.jedis; import java.util.HashSet; import java.util.Set; import org.junit.Test; import re ...
- Android源码剖析之Framwork层消息传递(Wms到View)
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 前面讲过Wms.Ams与Activity的一系列交互,包括创建过程.消息传递.窗口展示等,紧接上篇介 ...
- Java进程间通信
传统的进程间通信的方式有大致如下几种: (1) 管道(PIPE) (2) 命名管道(FIFO) (3) 信号量(Semphore) (4) 消息队列(MessageQueue) (5) ...
- javaScript中的单引号与双引号
javaScript中的单引号与双引号没有什么区别.但因为xhtml规范要求所有xhtml属性要用双引号括起来.所以在javaScript中使用单引号. var html = '<h2 clas ...
- QT中的SOCKET编程(QT-2.3.2)
转自:http://mylovejsj.blog.163.com/blog/static/38673975200892010842865/ QT中的SOCKET编程 2008-10-07 23:13 ...