How to make iPhone vibrate using Swift?
Short example:
import UIKitimport AudioToolboxclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)) }}
load onto your phone and it will vibrate. You can put it in a function or IBAction as you wish.
Code Update:
AudioServicesPlayAlertSoundWithCompletion(SystemSoundID(kSystemSoundID_Vibrate)) { }
As apple code docs written:
This function will be deprecated in a future release. UseAudioServicesPlaySystemSoundWithCompletion instead.
NOTE: If vibrate doesn't work. check vibrate is enable in sounds and haptics settings
Swift 4.2 Updated
Just insert code below into your project.
Usage
Vibration.success.vibrate()
Source Code
enum Vibration { case error case success case warning case light case medium case heavy @available(iOS 13.0, *) case soft @available(iOS 13.0, *) case rigid case selection case oldSchool public func vibrate() { switch self { case .error: UINotificationFeedbackGenerator().notificationOccurred(.error) case .success: UINotificationFeedbackGenerator().notificationOccurred(.success) case .warning: UINotificationFeedbackGenerator().notificationOccurred(.warning) case .light: UIImpactFeedbackGenerator(style: .light).impactOccurred() case .medium: UIImpactFeedbackGenerator(style: .medium).impactOccurred() case .heavy: UIImpactFeedbackGenerator(style: .heavy).impactOccurred() case .soft: if #available(iOS 13.0, *) { UIImpactFeedbackGenerator(style: .soft).impactOccurred() } case .rigid: if #available(iOS 13.0, *) { UIImpactFeedbackGenerator(style: .rigid).impactOccurred() } case .selection: UISelectionFeedbackGenerator().selectionChanged() case .oldSchool: AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate)) } } }