Swiftで遊ぼう! - 735 - CoreMotion
数日前に「CoreMotion」を勉強するぞ!なんて宣言していましたが、いまだにちゃんと取り組めていません。
iOSの物理センサーを読み取るCoreMotionを使ってiOSデバイスの状態を読み取ってみたいんです。
まずしなければならないのがCoreMotionライブラリの読み込みです。これがないと使えません。
import CoreMotion
そしてCoreMotionを管理するマネージャーのインスタンスを生成
let manager = CMMotionManager()
ここまでは決まり事のようです。このmanagerインスタンスを使ってiOSデバイスのセンサーを利用できるかどうか確認が必要です。
「manager.isAccelerometerAvailable」を調べる必要があります。センサーが無ければ「false」です。シュミレーターでアプリを動かしてもセンサーは動きません。ということで実機で動かす必要があります。
私は下記のようにカスタムメソッドを用意しました。
func activeMotion() { if manager.isAccelerometerAvailable { // ここで具体的なコードを加えます。 } else { // 「xLable」はstoryboardに設置したラベルでIBOutletです。 self.xLabel.text = "No MotionManager" } }
「Accelerometer」が存在することが分かれば、「manager.accelerometerUpdateInterval = 1 / 10」で検出間隔を設定します。
この検出間隔はヘルツ(Hz)を使っています。こういう内容も昔勉強しましたが忘れてしまっています。基本的な内容なのに覚えていないんですよね。
ヘルツ(Hz)は周波数です。1秒間の振動サイクル数ですね。10Hzと言えば、1秒間に10回振動するので、1回の振動する時間(周期T)は次の式ですね。
T = 1 / Hz
ということで、検出間隔を「0.1秒」にしているというわけです。
今日はこれだけ。