检测 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 移动是不是改变方向?的主要内容,如果未能解决你的问题,请参考以下文章
iphone - 在 iphone 的方向改变时,只旋转一个控件而不是所有其他控件