popup mlv

swiftのサンプルを動かしてみたり。

swiftでiosのモーションセンサーを使って見る話

f:id:popupin0x0:20170624042516p:plain

iosのモーションセンサーを使って値を取得したという話です。意外とあっさり書けてしまった感じがします。よくわからないまま

guardのところも省略したかったのですがうまいやり方がわからないのでそのままにしました。背景を青にはしなくてもいいと思います。

参考にしたサイト

書いたコード

import UIKit
import CoreMotion

class ViewController: UIViewController {
    var myMotionManager: CMMotionManager!
    // Label
    @IBOutlet weak var myXLabel: UILabel!
    @IBOutlet weak var myYLabel: UILabel!
    @IBOutlet weak var myZLabel: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        // モーションマネージャーを作成
        myMotionManager = CMMotionManager()
        if myMotionManager.isAccelerometerAvailable {
            // モーションセンサーが利用可能なとき背景を青に
            self.view.backgroundColor = UIColor.cyan
            // 更新周期
            myMotionManager.accelerometerUpdateInterval = 0.1
            // 加速度の取得開始
            myMotionManager.startAccelerometerUpdates(to: OperationQueue.main, withHandler: {
                (accelerometerData, error) in
                guard let data = accelerometerData else {
                    return
                }
                self.myXLabel.text = "\(data.acceleration.x)"
                self.myYLabel.text = "\(data.acceleration.y)"
                self.myZLabel.text = "\(data.acceleration.z)"
                }
            )
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

完成

f:id:popupin0x0:20170624042641j:plain