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

本文介绍如何使用Swift实现豆瓣电台应用中数据与UI的绑定。主要讲解了利用数组存储获取到的数据,并将数据填充到UITableView中。同时,还介绍了如何预加载默认图片并在后台线程中下载网络图片进行缓存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

转载于:https://www.cnblogs.com/sandal1980/p/3803777.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值