我正在尝试在播放音频时选择一个按钮。问题是按钮不会改变,除非我在循环中更改它(while(audioPlayer.playing){button.selcted = true})。在这种情况下,我不能使用该应用程序,直到音频完成(出于显而易见的原因)
希望有人可以帮助我func addButton(number: String, x:CGFloat, y:CGFloat){
let button = UIButton(type: UIButtonType.Custom) as UIButton
button.setTitle(number, forState: .Normal)
button.frame = CGRectMake(x, y, 68, 212)
if let image = UIImage(named: number) {
button.setImage(image, forState: .Normal)
}
button.addTarget(self, action: "play:", forControlEvents:.TouchUpInside)
self.view.addSubview(button)
}
@IBAction func play(sender: UIButton) {
button=sender
button.selected = true
let audioFilePath = NSBundle.mainBundle().pathForResource(sender.currentTitle, ofType: "WAV")
if audioFilePath != nil {
let audioFileUrl = NSURL.fileURLWithPath(audioFilePath!)
do { audioPlayer = try AVAudioPlayer(contentsOfURL: audioFileUrl, fileTypeHint: nil)} catch _ { return }
audioPlayer?.delegate = self
audioPlayer.play()
} else {
print("audio file is not found")
}
}
答案 0 :(得分:0)
我刚刚编写了一个测试应用,看看你在这里想要做什么,设置sender.enabled = false
就是你要找的。 (按钮作为动画,转到未启用设置的淡出灰色,然后返回到启用的原始颜色,将其设置为false可防止第二部分发生)
编辑:最后,所需的结果是带有灰色文本的可访问按钮,因此我们使用sender.setTitleColor(UIColor.grayColor(),forState:.Highlighted)
将文本高亮状态更改为灰色,用户将突出显示的变量设置为true播放功能。