使用UIAccelerometer切换视图

时间:2011-04-06 15:55:39

标签: iphone objective-c xcode uiview accelerometer

嘿伙计们,对不起,如果我是这个新手,我环顾四周,但还没有找到怎么做。基本上我想用iphone的加速度计切换视图。例如,假设iphone掉线,动作将触发它切换到另一个视图,告诉用户手机已经掉线。任何有关如何做的帮助将不胜感激,谢谢。

1 个答案:

答案 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或许可能?您可以自己尝试不同的值。

希望这有帮助!