2017-08-28 4 views
-1

に加速度計を使用します。それは作品どのように私はこれが私のコードであるSWIFT 3.</p> <p>と加速度計を使用するために助けが必要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)" 
     } 
    } 
} 

が、それはちょうど私XYとZを示し、私が使用したいですZ.

例:Z = 2が何か

+0

Zを使用してX、Y、Zを取得したいとします。あなたの問題は何ですか?トリプレットからZ値を抽出するのに助けが必要ですか?副次的に、Zデータのみを分析すると、加速度計の較正と、移動前/移動中の向きに関するいくつかの前提が暗示されます。 – Yunnosch

答えて

0

を行う場合は、CMAccelerometerData.acceleration.zを呼び出すことにより、Z軸の加速にアクセスすることができます。クラスの特定のプロパティにアクセスする方法がわからない場合は、XcodeまたはApple's documentation websiteのドキュメントを必ずチェックしてください。このアプローチでは、多くの時間を節約できます。 startAccelerometerUpdates(...)によって返される

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非常に役に立ちます;) –

0

dataオブジェクトタイプCMAcceleration性を有するCMAccelerometerDataです。これにより、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... 
      } 
     } 
    } 
} 
+0

もし 'true data.acceleration.z == 2'を意味します。 – rmaddy

+0

あなたはどこでそれを手に入れましたか? 'data'の型は' CMAccelerometerData'です。 –

+0

@rmaddyあなたは正しい、固定 – Paolo

関連する問題