加速计

加速计_第1张图片
加速计_第2张图片
加速计_第3张图片

UIAccelerometer的使用步骤

// 获得单例对象

UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];

// 设置代理

accelerometer.delegate = self;

// 设置采样间隔

accelerometer.updateInterval = 1.0/30.0;

// 1秒钟采样30次

实现代理方法

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

//acceleration中的x、y、z三个属性分别代表每个轴上的加速度


加速计_第4张图片
加速计_第5张图片
加速计_第6张图片

Core Motion的使用步骤(push)

// 创建运动管理者对象

CMMotionManager *mgr = [[CMMotionManager alloc] init];

//判断加速计是否可用(最好判断)

if (mgr.isAccelerometerAvailable){

//加速计可用

}

// 设置采样间隔

mgr.accelerometerUpdateInterval = 1.0/30.0;

// 1秒钟采样30次

// 开始采样(采样到数据就会调用handler,handler会在queue中执行)

- (void)startAccelerometerUpdatesToQueue:(NSOperationQueue*)queue withHandler:(CMAccelerometerHandler)handler;

Core Motion的使用步骤(pull)

// 创建运动管理者对象

CMMotionManager *mgr = [[CMMotionManager alloc] init];

//  判断加速计是否可用(最好判断)

if (mgr.isAccelerometerAvailable){ 

//加速计可用 

}

// 开始采样

- (void)startAccelerometerUpdates;

// 在需要的时候采集加速度数据

CMAcceleration acc = mgr.accelerometerData.acceleration;

NSLog(@"%f, %f, %f", acc.x,acc.y,acc.z);


加速计_第7张图片

摇一摇

监控摇一摇的方法

方法1:通过分析加速计数据来判断是否进行了摇一摇操作(比较复杂)

方法2:iOS自带的Shake监控API(非常简单)

判断摇一摇的步骤:实现3个摇一摇监听方法

- (void)motionBegan:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**检测到摇动*/

- (void)motionCancelled:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**摇动取消(被中断)*/

- (void)motionEnded:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**摇动结束*/

你可能感兴趣的:(加速计)