Обнаружение ударного движения
Я пытаюсь определить, когда вся левая сторона iPhone натолкнулась. Вот что у меня так далеко:
let manager = CMMotionManager()
override func viewDidLoad() {
super.viewDidLoad()
if manager.deviceMotionAvailable {
manager.deviceMotionUpdateInterval = 0.02
manager.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue()) {
[weak self] (data: CMDeviceMotion!, error: NSError!) in
if data.userAcceleration.x > 2 {
// Perform action
}
}
}
}
Приведенный выше код работает, пока я сталкиваюсь с верхним левым углом телефона. Однако, если я попытаюсь врезать весь телефон прямо влево по прямой линии, это редко, если вообще работает. Есть что-то, чего я здесь не хватает?
Спасибо!
1 ответ
Решение
if data.userAcceleration.x > 2 {
// Perform action
}
Сделайте 2, скажем 1,5 или меньше, потому что 2 требует действительно быстрого ускорения.