如何在迅速3
问题描述:
使用加速计我需要帮助使用与SWIFT 3.如何在迅速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)"
}
}
}
它的工作原理,但它只是告诉我XY和Z和我想使用Z.
例:Z = 2做点什么
答
您可以通过调用CMAccelerometerData.acceleration.z
访问Z轴的加速度。如果您不确定如何访问某个类的某个属性,请始终直接在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
}
})
+1
Thx非常有帮助;) –
答
即得到由startAccelerometerUpdates(...)
返回的data
目的是CMAccelerometerData
具有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...
}
}
}
}
想要使用Z并获得X,Y,Z。你有什么问题?你需要帮助从三元组中提取Z值吗?另一方面,当您只分析Z数据时,它意味着对加速度计的校准和移动前/移动过程中的方向的一些假设。 – Yunnosch