2010-08-05 65 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