我一直在慢慢构建音乐播放器。我查询相册数据以填充表格。如果用户选择了专辑,我们会切换到新屏幕以选择要播放的歌曲。我想将专辑表的第一行(在专辑视图控制器中)命名为“所有歌曲”,但是我还无法弄清楚该怎么做。
我尝试使用:insertRowsAtIndexPaths。但是没有成功。
@IBOutlet var albumsTableView: UITableView!
let qryAlbums = MPMediaQuery.albums() // Query the albums
// Set the cell in the table
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
// I am using the custom class that I created called: myCustomAlbumTableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "albumIdCell", for: indexPath) as! myCustomAlbumTableViewCell
let rowItem = qryAlbums.collections![indexPath.row]
cell.albumTitle.text = rowItem.items[0].albumTitle
return cell
}
答案 0 :(得分:1)
请确保您要显示的行数比查询相册多一排,然后每次需要从indexPath.row减去1时获取查询相册
@IBOutlet var albumsTableView: UITableView!
let qryAlbums = MPMediaQuery.albums() // Query the albums
// Set the cell in the table
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
// I am using the custom class that I created called: myCustomAlbumTableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "albumIdCell", for: indexPath) as! myCustomAlbumTableViewCell
if indexPath.row == 0 {
cell.albumTitle.text = "All Songs"
} else {
let rowItem = qryAlbums.collections![indexPath.row-1]
cell.albumTitle.text = rowItem.items[0].albumTitle
}
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return qryAlbums.collections! .count + 1
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.row > 0 {
let rowItem = qryAlbums.collections![indexPath.row-1]
}
}