objective-c - 在 xcode 中从 UIAccelerometer 计算 G 值

标签 objective-c ios xcode uiaccelerometer

我编写这段代码是为了在 xcode 中从 UIAccelerometer 获取 G 值。你能告诉我这对不对吗?

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    float gValue = sqrt(acceleration.x*acceleration.x+acceleration.y*acceleration.y+acceleration.z*acceleration.z);
    [gLabel setText:[NSString stringWithFormat:@"%.2f",gValue]];
}

请帮助我

最佳答案

如果G 值 应该是重力加速度 那么这个代码是不正确的。

问题:

  1. 它可以工作,但前提是设备不动并且唯一的加速度是由地球引力产生的。在所有其他情况下,等式都是不正确的。

  2. UIAcceleration 值按 G 缩放。这意味着当设备空闲时,值将为例如 (0, -1.0, 0) 而您的结果为 1.0.

另请注意,UIAccelerometer 已被“Core Motion”框架弃用并取而代之。

编辑:使用[CMDeviceMotion gravity]

关于objective-c - 在 xcode 中从 UIAccelerometer 计算 G 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315091/

相关文章:

ios - 等到 super 库中的文件加载

iphone - iOS : Make a circle with background color like the iPhone calendar list

python - Ruby 或 Python 是否因为速度而不适合 iPhone 或 Mac 应用程序开发,以及任何可以帮助提高速度的编译器?

iphone - ios 获取媒体库中项目的播放次数

ios - 是否可以将 IBDesignable 与 UICollectionViewCells 一起使用并在 Storyboard 中实时渲染它们?

iPhone支持后台运行应用程序吗?

objective-c - 如何从 subview 中添加 rightbarbuttonitem

ios - 为 Storyboard 中的导航栏分配色调颜色会分配错误的颜色

ios - 更改 viewController 时保持动画

iphone - Xcode 4.4,IOS 5.1模拟器。推特框架问题