如何在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...
}
}
}
}
我需要帮助才能将加速度计与 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...
}
}
}
}