从加速度计读数中获取G力

3

我想要一个标签,显示iPhone当前所经历的重力(g force)。我已经有代码可以获取来自加速计的信息,但我不知道如何将数据发送到标签中以显示当前的g force。 以下是我的代码...

if (!self.manager) {
    self.manager = [CMMotionManager new];
}

if (self.manager.isAccelerometerActive) {
    [self.manager stopAccelerometerUpdates];
}

NSOperationQueue *queue = [NSOperationQueue new];

[self.manager setAccelerometerUpdateInterval:1.0 / 30.0]; // 30 Updates Per Second
[self.manager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
NSLog(@"X: %f         Y: %f         Z: %f",accelerometerData.acceleration.x,accelerometerData.acceleration.y,accelerometerData.acceleration.z);
}];

谢谢

1个回答

1

这很容易。您需要在Interface Builder中设置一个UILabel,然后您会看到类似于这样的属性:

    @property (strong, nonatomic) IBOutlet UILabel *myLabel;

在您的NSLog语句之后,您将需要插入以下代码:

    self.myLabel.text = [NSString stringWithFormat:@"x=%f, y=%f, z=%f", accelerometerData.acceleration.x,accelerometerData.acceleration.y,accelerometerData.acceleration.z];

当然,你可能希望让它看起来更好看,但这应该足以让你开始了解。

顺便说一句,我看了你的网站,伙计,我希望我15岁时也有那样的动力。继续保持好工作! - Paul Cezanne
1
非常感谢!去年八月份,我看了一个制作声音板应用程序的YouTube视频后开始进行开发,意识到开发并不像我想象的那么难。虽然我还有很多事情要做,但还是感谢您提供的代码! - msweet168
我在viewDidLoad中有这段代码,这样可以吗? - msweet168
我测试了代码,它在应用程序中显示,但有两个问题:1. 它不是当前的G力,我需要它显示手机正在经历的当前G力;2. 它需要大约一分钟才能加载。这正常吗? - msweet168
是的,viewDidLoad 没问题。所有工作都在 NSOperationQueue 中进行。 - Paul Cezanne
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接