Переключение видов с помощью UIAccelerometer - PullRequest
0 голосов
/ 06 апреля 2011

Эй, ребята, извините, если я новичок в этом, я осмотрелся, но не совсем понял, как это сделать.В основном я хотел бы переключать взгляды с помощью акселерометра iphone.Например, скажем, если iphone падает, движение заставит его переключиться на другое представление, сообщающее пользователю, что телефон упал.Буду признателен за любую помощь в том, как это сделать, спасибо.

1 Ответ

2 голосов
/ 06 апреля 2011

Акселерометр можно прочитать с помощью класса 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, может быть? Вы можете попробовать разные значения самостоятельно.

Надеюсь, это поможет!

...