vibracion vibra solucion silencio poner como cambiar ios iphone swift vibrate vibration

ios - solucion - vibracion iphone 6



¿Cómo hacer que iPhone vibre usando Swift? (12)

Aquí encontrará todos los códigos para cada .caf y categoría asociada:

https://github.com/TUNER88/iOSSystemSoundsLibrary

Por ejemplo, si desea una vibración más ligera, puede usar el código 1003.

Buena suerte y diviertete ;)

Necesito hacer que el iPhone vibre, pero no sé cómo hacerlo en Swift. Sé que en Objective-C, simplemente escribes:

import AudioToolbox AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);

Pero eso no está funcionando para mí.


Breve ejemplo:

import UIKit import AudioToolbox class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)) } }

carga en tu teléfono y vibrará. Puede ponerlo en una función o IBAction como desee.


En iOS 10 en iPhone 7 o 7 Plus, intente:

let generator = UIImpactFeedbackGenerator(style: .heavy) generator.impactOccurred()



Para iOS 10.0+ , puede probar UIFeedbackGenerator

ViewController simple arriba, simplemente reemplace su controlador de vista en su "aplicación de vista única" de prueba

import UIKit class ViewController: UIViewController { var i = 0 override func viewDidLoad() { super.viewDidLoad() let btn = UIButton() self.view.addSubview(btn) btn.translatesAutoresizingMaskIntoConstraints = false btn.widthAnchor.constraint(equalToConstant: 160).isActive = true btn.heightAnchor.constraint(equalToConstant: 160).isActive = true btn.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true btn.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true btn.setTitle("Tap me!", for: .normal) btn.setTitleColor(UIColor.red, for: .normal) btn.addTarget(self, action: #selector(tapped), for: .touchUpInside) } @objc func tapped() { i += 1 print("Running /(i)") switch i { case 1: let generator = UINotificationFeedbackGenerator() generator.notificationOccurred(.error) case 2: let generator = UINotificationFeedbackGenerator() generator.notificationOccurred(.success) case 3: let generator = UINotificationFeedbackGenerator() generator.notificationOccurred(.warning) case 4: let generator = UIImpactFeedbackGenerator(style: .light) generator.impactOccurred() case 5: let generator = UIImpactFeedbackGenerator(style: .medium) generator.impactOccurred() case 6: let generator = UIImpactFeedbackGenerator(style: .heavy) generator.impactOccurred() default: let generator = UISelectionFeedbackGenerator() generator.selectionChanged() i = 0 } } }


Podemos hacer esto en Xcode7.1

import UIKit import AudioToolbox class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() AudioServicesPlayAlertSound(kSystemSoundID_Vibrate) } }


Puede hacer vibrar el teléfono usando AudioServices o AudioServices Haptic Feedback .

// AudioServices AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)) // Haptic Feedback UIImpactFeedbackGenerator(style: .medium).impactOccurred()

Haptica mi marco de código abierto Haptica , es compatible con AudioServices Haptic Feedback , AudioServices y patrones de vibraciones únicos. Funciona en Swift 4.2, Xcode 10


UINotificationFeedbackGenerator disponible desde iOS 10 y funciona con Haptic v2, podemos verificar esto:

let feedbackSupportLevel = UIDevice.current.value(forKey: "_feedbackSupportLevel") as? Int if #available(iOS 10.0, *), let feedbackSupportLevel = feedbackSupportLevel, feedbackSupportLevel > 1 { do { // 1 let generator = UIImpactFeedbackGenerator(style: .medium) generator.impactOccurred() } do { // or 2 let generator = UINotificationFeedbackGenerator() generator.notificationOccurred(.success) } } else { AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)) }


Swift 4.2

if #available(iOS 10.0, *) { UIImpactFeedbackGenerator(style: .light).impactOccurred() }


Swift 4.2 actualizado

Simplemente inserte el código a continuación en su proyecto.

Uso

Vibration.success.vibrate()

Código fuente

import AVFoundation import UIKit enum Vibration { case error case success case warning case light case medium case heavy case selection case oldSchool func vibrate() { switch self { case .error: let generator = UINotificationFeedbackGenerator() generator.notificationOccurred(.error) case .success: let generator = UINotificationFeedbackGenerator() generator.notificationOccurred(.success) case .warning: let generator = UINotificationFeedbackGenerator() generator.notificationOccurred(.warning) case .light: let generator = UIImpactFeedbackGenerator(style: .light) generator.impactOccurred() case .medium: let generator = UIImpactFeedbackGenerator(style: .medium) generator.impactOccurred() case .heavy: let generator = UIImpactFeedbackGenerator(style: .heavy) generator.impactOccurred() case .selection: let generator = UISelectionFeedbackGenerator() generator.selectionChanged() case .oldSchool: AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate)) } } }


import AudioToolbox extension UIDevice { static func vibrate() { AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) } }

Ahora puede llamar a UIDevice.vibrate() según sea necesario.


AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))