gpt4 book ai didi

ios - 国际化 UIButton

转载 作者:行者123 更新时间:2023-11-28 07:06:55 26 4
gpt4 key购买 nike

我有一些按钮,按下它们后我想播放一些音频。按钮的名称是音频文件的名称

private func playAudio(title : String){
audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(title, ofType: "wav")!), error: nil)
isPlayng = true
audioPlayer.play()
}

@IBAction func soundButton (sender: UIButton){
if let title = sender.currentTitle{
switch title {
case "Stop":
if isPlayng{
audioPlayer.stop()
}
default:
playAudio(title)
}
}
}

因此,如果我将 Storyboard本地化,标题将会不同,并且它会崩溃,因为没有音频文件。所以有一种方法可以在不复制音频文件的情况下做到这一点。

最佳答案

这是一个天真的实现,但也许它可以给你一些想法:你可以将实际的文件名和本地化的文件名保存在字典中(并且可以先将它们存储在 Plist 文件中,然后在 appp 启动时加载它们)并从本地化标题中获取实际文件名:

let filesTitles = ["file one": "file1.wav", "fichier un": "file1.wav", "archivo uno": "file1.wav"] // etc

@IBAction func soundButton (sender: UIButton) {
if let title = sender.currentTitle {
switch title {
case "Stop":
if isPlayng{
audioPlayer.stop()
}
default:
// if title is `file one` then fileName is `file1.wav`
let fileName = filesTitles[title]
playAudio(fileName)
}
}
}

在我的示例中,这是一个简单的词典,但您可以选择任何您喜欢的方式,其想法是创建一个表,其中本地化标题对应于实际文件标题。

关于ios - 国际化 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30171494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com