2010-08-05 74 views
2

嗨每一個原因,我不能使用搖搖API,所以IAM使用搖控設備通過加速度計,但我不知道爲什麼iPhone 4,iPad不支持此代碼!但適用於所有設備..我不知道發生了什麼事! 這裏是我的代碼:用加速計搖動iphone!

#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]; 

     } 
    } 
} 
+0

需要的細節。 'accelerometer:didAccelerate:'從不叫?被稱爲但測試總是失敗?還有別的嗎? – TechZen 2010-08-05 13:02:24

+0

我覺得在iPhone 4和iPad不叫!因爲沒有任何反應但在iPhone 2G/3G/3GS和iPod上工作正常! – Momi 2010-08-05 13:07:00

回答

0

如果你不能使用你的iPhone搖API,你可能還沒有設置您的視圖控制器作爲viewDidAppear第一個響應者。在您的視圖控制器上實現此方法:

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

現在您將可以使用shake API。希望有幫助:)

+0

不!該API工作正常:)我沒有任何問題惠普。謝謝 – Momi 2010-08-05 14:11:22