如何在swift 3中使用加速度计

How use accelerometer in swift 3

我需要帮助才能将加速度计与 swift 3.

一起使用

这是我的代码:

var motion = CMMotionManager()

@IBOutlet weak var statusAccel: UILabel!

override func viewDidAppear(_ animated: Bool) {
    motion.startAccelerometerUpdates(to: OperationQueue.current!){
        (data , error) in

        if let trueData = data {
            self.view.reloadInputViews()
            self.statusAccel.text = "\(trueData)"
        }
    }
}

它有效,但它只显示 X Y 和 Z,我想使用 Z。

示例:如果 Z = 2 做某事

调用CMAccelerometerData.acceleration.z即可获取Z轴加速度。如果您不确定如何访问 class 的某个 属性,请务必直接在 Xcode 或 Apple's documentation website 上查看文档,这样可以节省很多时间用这种方法。

motion.startAccelerometerUpdates(to: OperationQueue.current!, withHandler: { data, error in
    guard error == nil else { return }
    guard let accelerometerData = data else { return }
    if accelerometerData.acceleration.z == 2.0 {
        //do something
    }
})

startAccelerometerUpdates(...) 返回的 data 对象的类型为 CMAccelerometerData which has a CMAcceleration 属性。从这里你可以得到 z 组件。

var motion = CMMotionManager()

@IBOutlet weak var statusAccel: UILabel!

override func viewDidAppear(_ animated: Bool) {
    motion.startAccelerometerUpdates(to: OperationQueue.current!){
        (data , error) in

        if let trueData = data {
            self.view.reloadInputViews()
            self.statusAccel.text = "\(trueData)"

            if trueData.acceleration.z == 2 {
                // do things...
            }
        }
    }
}