【问题标题】:How to work a button at the same time in Xcode?如何在 Xcode 中同时使用一个按钮?
【发布时间】:2019-11-05 05:54:07
【问题描述】:

我想做一个像Noisli网站这样的应用程序。例如,当我点击下雨时,它会播放,但当我按下雷声时,它会再次播放并关闭声音。但它是单独工作的。

我有一个点击按钮的功能

@IBAction func buttonTapped(_ sender: UIButton) {

    let tag = sender.tag
    PlaySound(filename: sounds[tag])

}

func PlaySound(filename:String){

    let url = Bundle.main.url(forResource: filename, withExtension: "mp3")

            guard url != nil else{ //url not empty
                return
            }

            do{
               audioPlayer = try AVAudioPlayer(contentsOf: url!)
                audioPlayer?.play()
            }
            catch{
                print("error")
            }

}

【问题讨论】:

  • 一些建议,而不是单独的保护语句,您应该将 url 的分配包装在保护中,所以guard let url ...。这删除了不必要的代码,并且 url 变量现在是非可选的,因此您不需要强制解包它。同样在 catch 部分,打印实际错误而不是硬编码字符串print(error)。至于您的实际问题,我不明白您在问什么,也许您需要澄清一下,或者其他人可以理解。
  • 我不会访问某些网站来了解您的问题,您需要以这样一种方式提问,以便了解问题的所有相关信息都是您问题的一部分。

标签: swift xcode button


【解决方案1】:

使用UIControl.State:

@IBAction func buttonTapped(_ sender: UIButton) {
     sender.isSelected = !sender.isSelected
     let tag = sender.tag

     if sender.isSelected {
         PlaySound(filename: sounds[tag])
     } else {
         StopSound(filename: sounds[tag])
     }
 }

【讨论】:

    猜你喜欢
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多