【问题标题】:Shake iphone with accelerometer !用加速度计摇 iphone !
【发布时间】:2010-08-05 12:52:08
【问题描述】:

大家好,由于某些原因我无法使用摇动 API,所以我通过加速度计使用摇动设备,但我不明白为什么 iPhone 4、iPad 不支持此代码!!!但适用于所有设备..我不知道发生了什么! 这是我的代码:

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

@interface info : UIViewController  <UIAccelerometerDelegate> {

}
@end

~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~

@implementation info


- (void)viewDidLoad {
    UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
    accel.delegate = self;
    accel.updateInterval = kUpdateInterval;


    [super viewDidLoad];
}


#pragma mark -
- (void)accelerometer:(UIAccelerometer *)accelerometer 
        didAccelerate:(UIAcceleration *)acceleration {
   {
        if (acceleration.x > kAccelerationThreshold 
            || acceleration.y > kAccelerationThreshold
            || acceleration.z > kAccelerationThreshold) {

//What do you want to do !

                self.view.backgroundColor = [UIColor orangeColor];

        }
    }
}

【问题讨论】:

  • 需要详细信息。 accelerometer:didAccelerate: 从来没有被调用过吗?被调用但测试总是失败?还有什么?
  • 我认为在 iPhone 4 和 iPad 上不会调用!因为什么也没发生!但在 iPhone 2G/3G/3GS 和 iPod 上工作正常!

标签: iphone sdk


【解决方案1】:

如果你不能在你的 iPhone 上使用 Shake API,你可能没有将你的视图控制器设置为 viewDidAppear 上的第一响应者。在你的视图控制器上实现这个方法:

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [self becomeFirstResponder];
}

现在您可以使用 Shake API。希望对您有所帮助:)

【讨论】:

  • 不! API 工作正常 :) 我没有任何问题。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
相关资源
最近更新 更多