我在想,我只是捕获了起始UIAcceleration y值并将其与当前值进行比较,然后进行“测量”,但我不完全知道(1)是否正确(2)该数学应该是什么。

谢谢你的帮助。

更新:

这是jrturton建议的代码。

#import "ViewController.h"

@interface ViewController()
{
  CMMotionManager *motionManager;
}
@end

@implementation ViewController
@synthesize angleLabel;

- (void)startMotion
{
  if (motionManager == nil)
  {
    motionManager = [[CMMotionManager alloc] init];
  }
  motionManager = [[CMMotionManager alloc] init];
  [motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) {
    angleLabel.text = [NSString stringWithFormat:@"%g", motion.attitude.pitch];
  }];
}

- (void) stopMotion
{
  if (motionManager)
  {
    [motionManager stopDeviceMotionUpdates];
  }

  motionManager = nil;
}

- (void)viewDidUnload {
    [self setAngleLabel:nil];
    [super viewDidUnload];
}
@end

最佳答案

比这容易。使用CMDeviceMotion的attitude属性。有关文档,请参见here

关于ios - 如何确定设备的角度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8690743/

10-12 05:41