Swift - UITableView
Swift - UITableView
它是一个用于音频播放列表的 UITableView
import UIKit
import MediaPlayer
class TableView: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var tableView: UITableView!
var tableData = MPMediaQuery.playlistsQuery()
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.tableView.reloadData()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tableData.collections.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
let playlist: MPMediaPlaylist = tableData.collections[indexPath.row] as MPMediaPlaylist
let playlistName = playlist.valueForProperty(MPMediaPlaylistPropertyName) as NSString
cell.textLabel?.text = playlistName
return cell
}
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
println("Row \(indexPath.row) selected")
}
}
如何更改它,在 TableView 中有一个相册?
我试着改变var tableData = MPMediaQuery.playlistsQuery()
到var tableData = MPMediaQuery.albumsQuery()
但它不正确,xcode 给我一个错误:0x1002364b0: brk #1
您所做的是一个好的开始,将 tableData
更改为 MPMediaQuery.albumsQuery
而不是 MPMediaQuery.playlistsQuery
的结果。但是,请查看您的 cellForRowAtIndexPath
方法,特别是以下三行,其中定义了每个单元格的内容:
let playlist: MPMediaPlaylist = tableData.collections[indexPath.row] as MPMediaPlaylist
let playlistName = playlist.valueForProperty(MPMediaPlaylistPropertyName) as NSString
cell.textLabel?.text = playlistName
此代码预期 tableData
包含一个集合 属性,其中包含 MPMediaPlaylist
个对象,但包含 MPMediaQuery.albumsQuery
method returns a MPMediaQuery
object with a collections property that contains an MPMediaItem
个对象。
它是一个用于音频播放列表的 UITableView
import UIKit
import MediaPlayer
class TableView: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var tableView: UITableView!
var tableData = MPMediaQuery.playlistsQuery()
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.tableView.reloadData()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tableData.collections.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
let playlist: MPMediaPlaylist = tableData.collections[indexPath.row] as MPMediaPlaylist
let playlistName = playlist.valueForProperty(MPMediaPlaylistPropertyName) as NSString
cell.textLabel?.text = playlistName
return cell
}
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
println("Row \(indexPath.row) selected")
}
}
如何更改它,在 TableView 中有一个相册?
我试着改变var tableData = MPMediaQuery.playlistsQuery()
到var tableData = MPMediaQuery.albumsQuery()
但它不正确,xcode 给我一个错误:0x1002364b0: brk #1
您所做的是一个好的开始,将 tableData
更改为 MPMediaQuery.albumsQuery
而不是 MPMediaQuery.playlistsQuery
的结果。但是,请查看您的 cellForRowAtIndexPath
方法,特别是以下三行,其中定义了每个单元格的内容:
let playlist: MPMediaPlaylist = tableData.collections[indexPath.row] as MPMediaPlaylist
let playlistName = playlist.valueForProperty(MPMediaPlaylistPropertyName) as NSString
cell.textLabel?.text = playlistName
此代码预期 tableData
包含一个集合 属性,其中包含 MPMediaPlaylist
个对象,但包含 MPMediaQuery.albumsQuery
method returns a MPMediaQuery
object with a collections property that contains an MPMediaItem
个对象。