加速度计在 iphone4 上不起作用

Posted

技术标签:

【中文标题】加速度计在 iphone4 上不起作用【英文标题】:Accelerometer doesn't work on iphone4 【发布时间】:2011-01-30 05:19:21 【问题描述】:

我将以下代码用于加速度计,它适用于 ipod 3g,但 不适用于 iphone4(不显示警报)

.h

#define kAccelerationThreshold      2.2
#define kUpdateInterval         (1.0f/10.0f)

.m

- (void)viewDidLoad

    [super viewDidLoad];

    UIAccelerometer *accel=[UIAccelerometer sharedAccelerometer];
    accel.delegate=self;
    accel.updateInterval=kUpdateInterval;


- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration

    if (fabsf(acceleration.x) > kAccelerationThreshold || fabsf(acceleration.y) > kAccelerationThreshold || fabsf(acceleration.z) > kAccelerationThreshold)
    
         UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Shake" message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
      [alert show];

    

【问题讨论】:

我们需要查看更多您的代码 - 并描述它究竟是如何不起作用的 - 才能回答这个问题 【参考方案1】:

将您的代码复制到一个新项目中 - 为了让它工作,我不得不将 kAccelerationThreshold 的值降低到 1.5 左右 - 这仍然需要相当剧烈的摇动。

只在 iPhone 4 上测试过。

【讨论】:

【参考方案2】:
accel=updateInterval=kUpdateInterval;

应该是这样的

accel.updateInterval=kUpdateInterval;

【讨论】:

这是我的错误,我在 xcode 中写的正确(它适用于 ipod 意味着我的代码是正确的)【参考方案3】:

查看UIAccelerometer Class Reference。

请务必在您的标头中实现UIAccelerometerDelegate 协议。

【讨论】:

以上是关于加速度计在 iphone4 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

点击事件在 iPhone 4s 上不起作用

UIPageViewController - 以编程方式更改页面在 iPhone 4s/5/5s 上不起作用

SpriteKit中的加速度计不起作用

基于 Arduino 的加速度计鼠标的 Python 脚本不起作用

相机视图在 iPhone 上不起作用,在另一个上起作用

加速器在 Python Tkinter 中不起作用:如何修复 [重复]