加速计

作者: Hevin_Chen | 来源:发表于2016-09-21 12:36 被阅读18次

    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/**摇动结束*/

    相关文章

      网友评论

          本文标题:加速计

          本文链接:https://www.haomeiwen.com/subject/vglaettx.html