【发布时间】:2016-03-08 17:53:02
【问题描述】:
我已在表格视图中显示了 iTunes 音乐库中的所有歌曲。现在我想在用户点击后立即在表格视图中播放选定的歌曲。
这是我的代码:
import UIKit
import MediaPlayer
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var table: UITableView!
//Create an array with some elements for the table view rows
var myMusicPlayer = MPMusicPlayerController()
var allSongsArray: [MPMediaItem]!
let songsQuery = MPMediaQuery.songsQuery()
var abcArray = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", "#"]
//Define the amount of sections in table view
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return abcArray.count
}
//Assign the amount of elements in the array to the amount of rows in one section
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return allSongsArray.count
}
//Set up each element in abcArray as title for section
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return self.abcArray[section] as String
}
//Set up the Index Search
func sectionIndexTitlesForTableView(tableView: UITableView) -> [String]? {
return abcArray
}
//Assign each element in the array a row in table view
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell")
var items = allSongsArray[indexPath.row]
cell?.textLabel?.text = items.title
cell?.detailTextLabel?.text = items.artist
var imageSize = CGSizeMake(100, 100)
cell?.imageView?.image = items.artwork?.imageWithSize(imageSize)
return cell!
}
override func viewDidLoad() {
super.viewDidLoad()
self.allSongsArray = songsQuery.items! as [MPMediaItem]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
【问题讨论】:
-
你有什么问题?你有什么问题?您是否尝试过任何代码来播放歌曲或处理行选择?
-
其实我也不知道,哪段代码适合播放歌曲...?
标签: ios swift uitableview mpmediaitem