实用知识:陀螺仪的方法使用
2016-05-11 20:08
344 查看
#import "ViewController.h" #import <CoreMotion/CoreMotion.h> @interface ViewController () @property (strong, nonatomic) CMMotionManager *manager; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _manager = [[CMMotionManager alloc] init]; if ([_manager isGyroAvailable] == NO) { NSLog(@"陀螺仪不能用"); return; } // GRYO // 获取陀螺仪数据的时间间隙 _manager.gyroUpdateInterval = 0.5; // Pull 与 Push 方式 [self pushTest]; } #pragma mark - Pull方式 - (IBAction)startBtnAction:(UIButton *)sender { if ([self.manager isGyroActive] == NO) { [self.manager startGyroUpdates]; } } - (IBAction)pullBtnAction:(UIButton *)sender { CMGyroData *data = [self.manager gyroData]; CMRotationRate rate = data.rotationRate; NSLog(@"%f, %f, %f", rate.x, rate.y, rate.z); } - (IBAction)stopBtnAction:(UIButton *)sender { if ([self.manager isGyroActive] == YES) { [self.manager stopGyroUpdates]; } } #pragma mark Push方式 - (void)pushTest { [_manager startGyroUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMGyroData * _Nullable gyroData, NSError * _Nullable error) { // CMRotationRate 陀螺仪数据的结构体 CMRotationRate rate = gyroData.rotationRate; NSLog(@"%f, %f, %f", rate.x, rate.y, rate.z); }]; } @end
相关文章推荐
- 实用知识:CoreMotion框架使用(加速计方法使用)
- vim快速入门
- C/C++ uchar的一个有趣用法
- c++11 多线程 2<<c++ concurrency in action>>
- java---正则表达式应用实例
- 实现无锁的栈与队列(4)
- 移动小球和彩色波纹
- 水波纹
- 事件绑定与事件委托
- 查找旋转数组的最小值
- CSS的两个class选择器紧挨在一起
- 通过鼠标的位置获取窗口的类名和窗口名
- CSS的两个class选择器紧挨在一起
- HDU 5676 ztr loves lucky numbers dfs+二分
- ZooKeeper实战(四)-ZooKeeper API使用
- hdu 2121 Ice_cream’s world II(无根结点最小树形图)
- 实用知识:iOS5.0前加速计的方法使用(了解)
- hadoop基于文件的数据结构
- Android 权限
- HDU1716 排列2 next_permutation的用法