【问题标题】:Swift - How to add a delay for vibrateSwift - 如何为振动添加延迟
【发布时间】:2017-04-17 15:13:31
【问题描述】:

我在我的 motionBegan 函数中使用此代码。当我摇动我的设备时,它会振动。有没有办法添加延迟,例如 1 秒后开始振动?

    AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))

【问题讨论】:

标签: ios swift vibration


【解决方案1】:

对于 Swift 3 及更高版本,请使用 DispatchQueue:

DispatchQueue.main.asyncAfter(.now() + 1.0) {
    AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
}

【讨论】:

    【解决方案2】:

    使用 GCD dispatch_after。 (最简单的方法是使用我的delay 函数,此处显示:https://stackoverflow.com/a/24318861/341994。)

    【讨论】:

    • @RamyAlZuhouri 是的。我已经包含了一个适用于 Swift 3 的 delay 函数版本。无论如何,DispatchQueue 的 after 仍然是伪装的 dispatch_after
    • @matt 是绝对正确的。请注意,Apple 已统一调度 API 以使它们在 Swift 3 中更自然。如果您使用的是 Swift 3 及更高版本,则应切换到我在答案中显示的新 DispatchQueue 语法。它做的事情完全相同,但它是向前使用的正确 API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 2022-11-11
    • 2021-04-14
    • 2016-03-03
    • 1970-01-01
    相关资源
    最近更新 更多