检测 iPhone 移动是不是改变方向?

Posted

技术标签:

【中文标题】检测 iPhone 移动是不是改变方向?【英文标题】:Detect if the iPhone movement changes direction?检测 iPhone 移动是否改变方向? 【发布时间】:2015-05-18 18:31:16 【问题描述】:

在我的应用中,iPhone 在两种情况下被移动:

    沿直线方向移动

    沿弧线方向移动

如何检测运动方向是否改变方向?

【问题讨论】:

我只是能够检测到抖动事件。 【参考方案1】:

您必须引入 CoreMotion 框架并启动设备加速计和/或陀螺仪。 CoreMotion Reference

您希望得到的是CMAccelerometerData。这是通过实例化一个CMMotionManager 对象并调用startAccelerometerUpdatesToQueue:withHandler: 来完成的

类似这样的:

CMMotionManager *manager = [[CMMotionManager alloc] init];
manager.accelerometerUpdateInterval = 0.5;  // half a second

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[manager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) 
    double x = accelerometerData.acceleration.x;
    double y = accelerometerData.acceleration.y;
    double z = accelerometerData.acceleration.z;

    // post back to main queue to update UI
    dispatch_async(dispatch_get_main_queue(), ^           

    );
]; 

您需要使用一些好的老式几何体来检测弧线与直线。

【讨论】:

以上是关于检测 iPhone 移动是不是改变方向?的主要内容,如果未能解决你的问题,请参考以下文章