在用查询中的 MPmedia 项填充数据之前,如何将数据添加到 table 的第一行?
How can I add data to the first row of a table before it is filled with MPmedia items from a query?
我一直在慢慢构建一个音乐播放器。我查询专辑数据以填充 table。如果用户选择了一张专辑,我们会转到一个新屏幕来选择要播放的歌曲。我想将相册的第一行 table(在相册视图控制器中)设为名为 'All Songs' 的行,但我还不知道该怎么做。
我试过使用: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
}
只需确保显示的行比查询相册多一行,然后每次需要获取查询相册时从 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]
}
}
我一直在慢慢构建一个音乐播放器。我查询专辑数据以填充 table。如果用户选择了一张专辑,我们会转到一个新屏幕来选择要播放的歌曲。我想将相册的第一行 table(在相册视图控制器中)设为名为 'All Songs' 的行,但我还不知道该怎么做。
我试过使用: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
}
只需确保显示的行比查询相册多一行,然后每次需要获取查询相册时从 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]
}
}