我在 MainStoryBoard 上用图像创建了按钮。当我按下该按钮时,它会播放音频文件。
我希望该按钮在播放音频文件期间保持突出显示。音频结束后,我希望按钮恢复到默认状态。
我发现audioPlayerDidFinishPlaying(_:successfully:)
是一个正确的方法,但是不能解决这个问题。它接近正确的方法吗?如果没有,我该怎么办?
如果有任何建议可以找到解决此问题的方法,我将不胜感激。谢谢。
let url = Bundle.main.bundleURL.appendingPathComponent("audio1.mp3")
override func viewDidLoad() {
super.viewDidLoad()
}
func play(url: URL) {
do {
try player = AVAudioPlayer(contentsOf:url)
player.play()
} catch {
print(error)
}
}
@IBAction func pushButton1(sender: UIButton) {
play(url: url)
}
最佳答案
在 viewDidLoad 上,您可以在不播放时设置默认属性(例如:我将背景颜色保持为白色),并在播放时将该按钮设为选中状态(例如:我正在使其颜色为绿色)
再次在 audioPlayerDidFinishPlaying 停止播放音频时,将其设置为默认状态(再次从绿色变为白色):
@IBOutlet weak var yourButton: UIButton!
let url = Bundle.main.bundleURL.appendingPathComponent("audio1.mp3")
override func viewDidLoad() {
super.viewDidLoad()
self.yourButton.backgroundColor = UIColor.white // default state of button
}
@IBAction func pushButton1(sender: UIButton) {
play(url: url)
}
func play(url: URL) {
do {
try player = AVAudioPlayer(contentsOf:url)
player.play()
self.yourButton.backgroundColor = UIColor.green // playing
}
catch {
print(error)
}
}
func audioPlayerDidFinishPlaying(player: AVAudioPlayer!, successfully flag: Bool) {
self.yourButton.backgroundColor = UIColor.white // back to default state
}
关于ios - 在播放音频时保持 UIButton 处于选中状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050821/