观看地址 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实战-豆瓣电台(三)获取网络数据

最新文章

  1. asp.net天网代码
  2. Dell_R710 centos5.4 网卡(BCM5709)中断故障解决
  3. 使用css3制作蚂蚁线
  4. paip.禁用IKAnalyzer 的默认词库.仅仅使用自定义词库.
  5. Android入门(十二)SQLite事务、升级数据库
  6. 算法:二分查找(python版)
  7. ACM/ICPC 之 Floyd练习六道(ZOJ2027-POJ2253-POJ2472-POJ1125-POJ1603-POJ2607)
  8. FPGA边缘检测
  9. WIN7下USB多点触摸,一次发多个数据包的延迟问题,重要!
  10. .net 中 ref out params的区别
  11. mysql 截取字符
  12. Android开发UI之给ImageView添加蒙版
  13. 怎样在Swift中使用CocoaPods-b
  14. Java中的位运算符、移位运算
  15. c#indexof使用方法
  16. UVA 11039-Building designing【贪心+绝对值排序】
  17. javascript 正则表达式补充
  18. Vim-latex 插件 的安装
  19. 伙伴系统之避免碎片--Linux内存管理(十六)
  20. Java第11章笔记

热门文章

  1. VSS 访问问题
  2. BAT批处理(二)
  3. P1541 乌龟棋
  4. Oracle 安装 INS-30131错误。
  5. Delphi 如何清除动态数组的内存?
  6. [daily][archlinux][pacman] local database 损坏
  7. Link Management Protocol (LMP)
  8. mssql 常用SQL语句或函数
  9. [LeetCode]题解(python):060-Permutation Sequence
  10. SQL Server 视图修改后有错怎么办?