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
            }
        }
    }
}

只要我碰到手机的左上角,上面的代码就可以工作。但是,如果我尝试将整个手机直接向左直线撞击,它很少会起作用。我在这里缺少什么吗?

谢谢!

4

1 回答 1

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

将 2 设为 1.5 或更小,因为 2 需要非常快的加速度。

于 2015-02-18T14:02:02.660 回答