Обнаружение ударного движения

Я пытаюсь определить, когда вся левая сторона 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 требует действительно быстрого ускорения.

Другие вопросы по тегам