检测 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 移动是不是改变方向?的主要内容,如果未能解决你的问题,请参考以下文章

在加载 tableview 之前检测 iPhone 方向

iphone - 在 iphone 的方向改变时,只旋转一个控件而不是所有其他控件

如何检测 iPhone 6 设备的运动? (确定 iPhone 设备是不是移动 - x,y,z- 上的最小可能运动)

检测 iPhone 相机方向

检测移动设备和方向以添加代码

Cordova 3.5.0 中的 iPhone 屏幕方向没有改变