【问题标题】:Making All App Vibrations Stop Setting使所有应用程序振动停止设置
【发布时间】:2015-08-15 08:55:37
【问题描述】:

我正在尝试在我的应用程序中创建一个按钮,该按钮可以改变在应用程序中按下某些按钮时发生的振动。

我用过:

AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))

在某些按钮按下时启用振动的代码 - 但我希望用户能够关闭振动,如果他们愿意的话。

有没有办法通过单个 .disable 或 .invalidate 类型的方式禁用所有振动(这些示例是我能想到的唯一取消代码的代码)

【问题讨论】:

    标签: ios swift vibration


    【解决方案1】:

    您可以创建一个 bool 并将其状态存储到 NSUserDefaults,然后添加一个 if 振动条件,如下所示:

    if allowVibration {
    
        AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
    }
    

    如果allowVibrationfalse,则不会进入这个if条件。

    【讨论】:

      【解决方案2】:

      使用NSUserDefaults 存储一个bool,用于跟踪是否播放振动。如果您不想在应用程序会话之间跟踪这一点,只需使用 bool

      // Get NSUserDefaults
      let defaults = NSUserDefaults.standardUserDefaults()
      
      // Some button that would turn off vibration
      @IBAction func turnVibrateOff(sender: AnyObject) {
          defaults.setBool(false, forKey: "vibrate")
          NSUserDefaults.standardUserDefaults().synchronize()
      }
      
      // Some button that would turn on vibration
      @IBAction func turnVibrateOn(sender: AnyObject) {
          defaults.setBool(true, forKey: "vibrate")
          NSUserDefaults.standardUserDefaults().synchronize()
      }
      
      // Then just check against the key we've created
      func shouldWeVibrate() {
          if defaults.boolForKey("vibrate") {
              // Vibrate
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多