-
Notifications
You must be signed in to change notification settings - Fork 9
/
AccelerometerViewController.m
68 lines (54 loc) · 1.74 KB
/
AccelerometerViewController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//
// AccelerometerViewController.m
// iSensor
//
// Created by koogawa on 2013/11/26.
// Copyright (c) 2013年 Kosuke Ogawa. All rights reserved.
//
#import "AccelerometerViewController.h"
@interface AccelerometerViewController ()
@end
@implementation AccelerometerViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// インスタンスの生成
_motionManager = [[CMMotionManager alloc] init];
if (_motionManager.accelerometerAvailable)
{
// センサーの更新間隔の指定
_motionManager.accelerometerUpdateInterval = 1 / 10; // 10Hz
// ハンドラを指定
CMAccelerometerHandler handler = ^(CMAccelerometerData *data, NSError *error)
{
// 画面に表示
self.xLabel.text = [NSString stringWithFormat:@"x %f", data.acceleration.x];
self.yLabel.text = [NSString stringWithFormat:@"y %f", data.acceleration.y];
self.zLabel.text = [NSString stringWithFormat:@"z %f", data.acceleration.z];
};
// 加速度の取得開始
[_motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:handler];
}
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
// 加速度の取得停止
if (_motionManager.accelerometerActive) {
[_motionManager stopAccelerometerUpdates];
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end