加速计
来源:互联网 发布:笑知大学话剧 编辑:程序博客网 时间:2024/04/28 22:18
#import "RootViewController.h"#include<CoreMotion/CoreMotion.h>#import<CoreFoundation/CoreFoundation.h>@interface RootViewController ()@property (strong,nonatomic) CMMotionManager *motionManager;@property (strong,nonatomic) NSOperationQueue *queue;@property (strong,nonatomic) NSTimer *updateTimer;@property (strong,nonatomic) UILabel *accelerometerLabel;@end@implementation RootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self;}- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. self.motionManager = [[CMMotionManager alloc] init]; self.queue = [[NSOperationQueue alloc] init]; if (self.motionManager.accelerometerAvailable) { self.motionManager.accelerometerUpdateInterval = 1.0 / 10.0; //回调周期为10Hz //设置回调block [self.motionManager startAccelerometerUpdatesToQueue:self.queue withHandler: ^(CMAccelerometerData *accelerometerData, NSError *error) { NSString *labelText; if (error) { [self.motionManager stopAccelerometerUpdates]; labelText = [NSString stringWithFormat: @"Accelerometer encountered error: %@", error]; } else { NSLog(@"Accelerometer\n---\nx: %+.2f\ny: %+.2f\nz: %+.2f", accelerometerData.acceleration.x, accelerometerData.acceleration.y, accelerometerData.acceleration.z); } }]; } else { self.accelerometerLabel.text = @"This device has no accelerometer."; } //设置一个NSTimer在20Hz的周期内调用updateDisplay方法,这就是模仿游戏的更新模式 self.updateTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 / 10.0 target:self selector:@selector(updateDisplay) userInfo:nil repeats:YES];}- (void)updateDisplay{if (self.motionManager.accelerometerAvailable) { CMAccelerometerData *accelerometerData = self.motionManager.accelerometerData; NSLog(@"Accelerometer\n---\nx: %+.2f\ny: %+.2f\nz: %+.2f", accelerometerData.acceleration.x, accelerometerData.acceleration.y, accelerometerData.acceleration.z); }}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller.}*/@end
0 0
- 加速计
- 加速计
- 加速计
- 加速计
- 加速计
- UIAccelerometer 加速计
- 加速计原理
- UIAccelerometer 加速计
- windows phone 加速计
- IPhone加速计
- UIAccelerometer 加速计
- UIAccelerometer 加速计 UIAcceleration
- iphone之加速计
- UIAccelerometer 加速计
- ios之加速计
- ios加速计
- iphone之加速计
- iphone开发 加速计
- oracle优化思考-双刃剑
- 黑马程序员_JAVA基础-选择循环结构
- 08-hibernate一对一实例
- 类的静态成员变量
- c语言入门(六)二维数组
- 加速计
- poj 1985 树的直径
- 8#2014-7-13 队列阻塞导致服务器无响应问题
- 款到即发中国的看了几个
- Hadoop 学习(1)——综述
- window下的mysql集群搭建
- 编译 Deedle
- php tp 框架下 redis 队列&&加锁
- 2014-7-12任务完成情况