如何在表格视图单元格中添加一个按钮,使用swift在每行上播放不同的声音文件

时间:2015-10-01 12:52:57

标签: swift uitableview button audio

我希望能够在UITableViewCell中放置一个按钮,我可以单击该按钮,并在每行上播放不同的声音文件。为实现这一目标,最好的代码是什么?

这是我的代码:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var mytableview: UITableView!
var arrayOfPersons: [Person] = [Person]()


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.setUpPersons()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func setUpPersons()
{
    let person1 = Person(name: "Anna\nAnna2\nAnna3", number: 60, imageName: "testingimage.jpg", soundButton: "dimsumgirl.mp3")
    let person2 = Person(name: "Joes", number: 10, imageName: "testingimage2.jpg", soundButton: "dimsumgirl.mp3")

    arrayOfPersons.append(person1)
    arrayOfPersons.append(person2)

}

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
 {
    return arrayOfPersons.count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! CustomCell



    if indexPath.row % 2 == 0
    {
        cell.backgroundColor = UIColor.blackColor()
    }
    else
    {
        cell.backgroundColor = UIColor.blackColor()
    }

    let person = arrayOfPersons [indexPath.row]

    cell.setCell(person.name, rightlabelInt: person.number, imageName: person.imageName, soundButton: person.soundButton)



    return cell

我尝试使用上面的代码,但我似乎无法弄清楚如何将图片改为按钮,并能够用每个按钮播放声音。

真的很感激一些帮助!

谢谢!

1 个答案:

答案 0 :(得分:1)

在自定义单元格中,您应该有一个按钮,并在该单元格内部连接触摸事件。在setCell内部使按钮的背景图像成为您传递的图像,并将类变量设置为您传入的声音文件。然后,当触发IBAction触摸事件时,播放类变量中的声音。