2015-02-18 4 views
1

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

Код выше работает до тех пор, пока я ударяю верхний левый угол телефона. Однако, если я попытаюсь повредить весь телефон прямо влево по прямой, он редко срабатывает. Здесь что-то не хватает?

Спасибо!

ответ

2
if data.userAcceleration.x > 2 { 
      // Perform action 
     } 

Сделайте 2, скажем, 1,5 или меньше, поскольку 2 требует очень быстрого ускорения.

+0

Смена его на 1 сделала трюк. Возможно, придется немного подкорректировать, но это огромное улучшение. Благодаря! –

+0

Как насчет того, хотите ли вы встряхнуть и двигаться? –

Смежные вопросы