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三个属性分别代表每个轴上的加速度
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);
摇一摇
监控摇一摇的方法
方法1:通过分析加速计数据来判断是否进行了摇一摇操作(比较复杂)
方法2:iOS自带的Shake监控API(非常简单)
判断摇一摇的步骤:实现3个摇一摇监听方法
- (void)motionBegan:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**检测到摇动*/
- (void)motionCancelled:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**摇动取消(被中断)*/
- (void)motionEnded:(UIEventSubtype)motionwithEvent:(UIEvent*)event/**摇动结束*/
网友评论