0

有这一切....

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation {

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    return (interfaceOrientation != UIInterfaceOrientationPortrait && interfaceOrientation       != UIInterfaceOrientationLandscapeLeft && interfaceOrientation !=      UIInterfaceOrientationPortraitUpsideDown);
  } else {
    return YES;
}
}

我希望加速度计在横向工作,就好像它在纵向一样......我拥有所有加速度计的东西,例如:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration*)acceleration {
   accx = acceleration.x;

}

我也尝试过查看其他问题,但我找不到解决方案...?

4

2 回答 2

0

好的,如果理解正确,你是纵向的(在 X 轴方向上看图像),向右倾斜和向左倾斜,那么你的应用程序中的图像应该左右移动。然后你切换到横向,你的图像现在应该左右移动,但它没有,你现在应该注意的轴是 Y 轴。

当您旋转到横向时,没有理由不看到 Y 轴有任何变化,除非存在硬件损坏并且加速度计已停止工作。

iPhone 加速度计

现在,您要求的是一种重置加速度计的方法,以便即使 Y 轴发生变化,您也可以继续从 X 读取?不,没有办法做到这一点,除非你写一个额外的方法......类似于:

+(UIAccelerationValue)fixedAccelerationValue{
    //Check which axis you should look for
    if ( [[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIInterfaceOrientationUpsideDown ){
        //read from the x axis
    }
    else{
        //read from the y axis
    }

}
于 2012-04-20T03:01:39.467 回答
0

我遇到了同样的问题,并通过在实现文件BOOL之前添加语句来修复它。UIACCELEROMETER

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{

    if (interfaceOrientation == UIInterfaceOrientationPortrait ||
        interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
        interfaceOrientation == UIInterfaceOrientationLandscapeRight)
        return YES;
    else
        return NO;
}

希望这可以帮助。

于 2013-04-23T12:54:51.833 回答