答案 0 :(得分:2)
可以使用UIAccelerometer类读取加速度计,该类将加速度计值调用到其UIAccelerometerDelegate协议代理。这意味着:
h file:
@interface TestView: UIViewController <UIAccelerometerDelegate> {
UIAccelerometer *accelerometer;
}
@property (nonatomic, retain) UIAccelerometer *accelerometer;
@end
在您的m文件中:
- (void)viewDidLoad {
[super viewDidLoad];
self.accelerometer = [UIAccelerometer sharedAccelerometer];
self.accelerometer.updateInterval = .1;
self.accelerometer.delegate = self;
}
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
float aX = ABS(acceleration.x);
float aY = ABS(acceleration.y);
float aZ = ABS(acceleration.z);
if(sqrt(aX*aX+aY*aY+aZ*aZ)>THRESHOLD){
//Load new view here
}
}
您可以选择THRESHOLD为您想要的任何东西。这意味着加速度矢量的长度超过某个值。我认为如果没有运动,这个值通常在1左右,如果有运动则更高。我建议将此设置为1.5或许可能?您可以自己尝试不同的值。
希望这有帮助!