如何让设备振动呢
iPhone 6S 3D Touch,可以识别轻,中,重三种按压力度,配合恰到好处的振动有利于提升交互体验,但后面的新设备都不支持 3D Touch 了,改为了检测按压时间,按同一个图标,不同时间,交互,功能有所不同
Taptic Engine——聊聊iPhone的震动马达
Show Me The Code
// 这段代码发出的振动,很普通,像来电话时的振动,像几年前的安卓,或者 5S 及以前的设备
import SwiftUI
import AudioToolbox
struct SwiftUIView1: View {
var body: some View {
Button("触发震动 1") {
triggerVibration()
}
}
func triggerVibration() {
AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
}
}
// 这段代码发出的振动,就很 coooooooooooooool
// 可以试试初始化一个 Xcode Project 真机运行试一试
// 它就很适合 自定义键盘 这种场景,很小的振动感
import SwiftUI
import AudioToolbox
struct SwiftUIView2: View {
var body: some View {
Button("触发震动 2") {
// AudioServicesPlaySystemSound(1519) // Actuate "Peek" feedback (weak boom)
AudioServicesPlaySystemSound(1520) // Actuate "Pop" feedback (strong boom)
// AudioServicesPlaySystemSound(1521) // Actuate "Nope" feedback (series of three weak booms)
}
}
}
参考资料
-
https://stackoverflow.com/questions/26455880/how-to-make-iphone-vibrate-using-swift
-
https://www.hackingwithswift.com/example-code/system/how-to-make-the-device-vibrate