我认为您可以使用 UIAccelerometer。您只需要实现 UIAccelerometerDelegate。
只是为了使用加速度计获取视图的当前方向,您可以使用以下代码:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
// Get the current device angle
float x = [acceleration x];
float y = [acceleration y];
float angle = atan2(y, x);
if([acceleration z]>-0.84)
{
if(angle >= -2.25 && angle <= -1) // Current Orientation = Portrait
{
//Do the work
}
else if(angle >= -0.35 && angle < 0.20) //Current Orientation = Landscape Left
{
//Do the work
}
else if(angle >= 0.90 && angle <= 2.00) //Current Orientation = Portrait Upside Down
{
//Do the work
}
else if(angle <= -2.70 || angle >= 2.5) //Current Orientation = Landscape Right
{
//Do the work
}
}
}
如果您需要更多帮助,请告诉我。
希望这可以帮助。