Акселерометр можно прочитать с помощью класса UIAccelerometer, который вызывает значения акселерометра для своего делегата протокола UIAccelerometerDelegate. Это значит:
ч файл:
@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, может быть? Вы можете попробовать разные значения самостоятельно.
Надеюсь, это поможет!