これがあなたが探しているものかどうかは 100% わかりませんがCMAttitudeReferenceFrameXMagneticNorthZVertical
、次の参照フレームを使用して、モーション マネージャーからデバイスの姿勢の値を取得できます。このコードは、デバイスの姿勢をダンプして、1 秒あたり 30 回ログに記録します。ヨー値は東向きで約 0 で、正の値が反時計回り、負の値が時計回りで、両方向に 180 度まで伸びているように思えます。
- (void)startMonitoring
{
if (!self.motionManager) {
self.motionManager = [CMMotionManager new];
[self.motionManager setDeviceMotionUpdateInterval:1.0 / 30.0];
}
NSOperationQueue *currentQueue = [NSOperationQueue currentQueue];
[self.motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXMagneticNorthZVertical
toQueue:currentQueue
withHandler:^(CMDeviceMotion *motion, NSError *error) {
NSLog(@"%@",motion.attitude);
}];
}