iOS中 陀螺仪/加速器 韩俊强的博客
生活随笔
收集整理的這篇文章主要介紹了
iOS中 陀螺仪/加速器 韩俊强的博客
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
引進框架:
加速器的使用: /* // 每一個設備晃動的時候, 系統(tǒng)通知每一個在用的設備, 可以使本身成為第一響應者 - (BOOL)canBecomeFirstResponder {return YES; }- (void)viewDidAppear:(BOOL)animated {[self becomeFirstResponder]; }*/// 加速器的方法 - (void)configureAccelerometer {/*** 5.0之前使用的是pull方式,之后使用push方式*// pull 方式// 判斷加速器是否可以使用if ([_motionManager isAccelerometerAvailable]) {[_motionManager setAccelerometerUpdateInterval:1 / 40.0];[_motionManager startAccelerometerUpdates];}else{NSLog(@"加速器不能使用");}*/// push 方式if ([_motionManager isAccelerometerAvailable]) {// 設置加速器的頻率[_motionManager setAccelerometerUpdateInterval:1 / 40.0];// 開始采集數(shù)據(jù)[_motionManager startAccelerometerUpdatesToQueue:_quene withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {if (fabs(accelerometerData.acceleration.x) > 2.0 || fabs(accelerometerData.acceleration.y) > 2.0 || fabs(accelerometerData.acceleration.z) > 2.0) {NSLog(@"檢測到震動");}NSLog(@"%.2f__%.2f__%.2f",accelerometerData.acceleration.x,accelerometerData.acceleration.y,accelerometerData.acceleration.z);}];}else{NSLog(@"加速器不能使用");}}// 觸摸結束的時候 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {CMAcceleration acceleration = _motionManager.accelerometerData.acceleration;NSLog(@"%.2f__%.2f__%.2f",acceleration.x,acceleration.y,acceleration.z); }
晃動觸發(fā)的一些方法: - (void)viewDidDisappear:(BOOL)animated {[self.motionManager stopAccelerometerUpdates];[self.motionManager stopGyroUpdates]; }// 開始晃動的時候觸發(fā) - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {NSLog(@"開始晃動"); }// 結束晃動的時候觸發(fā) - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {NSLog(@"晃動結束"); }// 中斷晃動的時候觸發(fā) - (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {NSLog(@"取消晃動,晃動終止"); }
每日更新關注:http://weibo.com/hanjunqiang? 新浪微博
#import <CoreMotion/CoreMotion.h>
定義屬性初始化相關:
#import "ViewController.h" #import <CoreMotion/CoreMotion.h>@interface ViewController ()@property (nonatomic, strong) CMMotionManager *motionManager;@property (nonatomic, strong) NSOperationQueue *quene;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 初始化 CMMotionManagerself.motionManager = [[CMMotionManager alloc]init];// 初始化 NSOperationQueueself.quene = [[NSOperationQueue alloc]init];// 調用加速器[self configureAccelerometer];// 調用陀螺儀[self configureGrro];} 每日更新關注:http://weibo.com/hanjunqiang? 新浪微博加速器的使用: /* // 每一個設備晃動的時候, 系統(tǒng)通知每一個在用的設備, 可以使本身成為第一響應者 - (BOOL)canBecomeFirstResponder {return YES; }- (void)viewDidAppear:(BOOL)animated {[self becomeFirstResponder]; }*/// 加速器的方法 - (void)configureAccelerometer {/*** 5.0之前使用的是pull方式,之后使用push方式*// pull 方式// 判斷加速器是否可以使用if ([_motionManager isAccelerometerAvailable]) {[_motionManager setAccelerometerUpdateInterval:1 / 40.0];[_motionManager startAccelerometerUpdates];}else{NSLog(@"加速器不能使用");}*/// push 方式if ([_motionManager isAccelerometerAvailable]) {// 設置加速器的頻率[_motionManager setAccelerometerUpdateInterval:1 / 40.0];// 開始采集數(shù)據(jù)[_motionManager startAccelerometerUpdatesToQueue:_quene withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {if (fabs(accelerometerData.acceleration.x) > 2.0 || fabs(accelerometerData.acceleration.y) > 2.0 || fabs(accelerometerData.acceleration.z) > 2.0) {NSLog(@"檢測到震動");}NSLog(@"%.2f__%.2f__%.2f",accelerometerData.acceleration.x,accelerometerData.acceleration.y,accelerometerData.acceleration.z);}];}else{NSLog(@"加速器不能使用");}}// 觸摸結束的時候 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {CMAcceleration acceleration = _motionManager.accelerometerData.acceleration;NSLog(@"%.2f__%.2f__%.2f",acceleration.x,acceleration.y,acceleration.z); }
陀螺儀的使用:
// 陀螺儀的使用 - (void)configureGrro {if ([_motionManager isGyroAvailable]) {[self.motionManager startGyroUpdatesToQueue:_quene withHandler:^(CMGyroData *gyroData, NSError *error) {NSLog(@"%.2f__%.2f__%.2f",gyroData.rotationRate.x,gyroData.rotationRate.y,gyroData.rotationRate.z);}];}else{NSLog(@"陀螺儀不能使用");} }晃動觸發(fā)的一些方法: - (void)viewDidDisappear:(BOOL)animated {[self.motionManager stopAccelerometerUpdates];[self.motionManager stopGyroUpdates]; }// 開始晃動的時候觸發(fā) - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {NSLog(@"開始晃動"); }// 結束晃動的時候觸發(fā) - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {NSLog(@"晃動結束"); }// 中斷晃動的時候觸發(fā) - (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {NSLog(@"取消晃動,晃動終止"); }
每日更新關注:http://weibo.com/hanjunqiang? 新浪微博
總結
以上是生活随笔為你收集整理的iOS中 陀螺仪/加速器 韩俊强的博客的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最小圆覆盖模板
- 下一篇: ionic路由(一)