加速度计在 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 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UIPageViewController - 以编程方式更改页面在 iPhone 4s/5/5s 上不起作用