保持iPhone在景观中的旋转?

时间:2012-06-14 18:29:02

标签: iphone xcode rotation

我正在创建一个仅处于横向模式的应用,但我发现当我旋转设备时,应用会自动旋转到该方向。我在项目摘要中指定我只想要“左侧风景”,然后在每个视图控制器中添加

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
 {
 return UIInterfaceOrientationLandscapeLeft; 
 }

虽然当我单击向右或向左旋转时应用程序以横向方式启动,但模拟器会按原样进入纵向,但应用程序也会自动旋转。即使设备旋转,如何让应用程序保持横向?

3 个答案:

答案 0 :(得分:1)

除了你做的, 请使用以下

代替shouldAutorotateToInterfaceOrientation功能
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}

答案 1 :(得分:0)

我认为你误解了shouldAutorotateToInterfaceOrientation:的用途。 要求您“您支持哪些方向?” 要求您“您是否支持此界面? “。因此,您的答案应该是YESNO

每次决定改变方向之前,它会问你这个问题,这样你就可以改变主意,有时候会支持它,有时候不会(如果你真的想要的话)。

例如,支持所有方向:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

...仅支持横向定位:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
        (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}

...仅支持横向左侧(如您所愿):

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return(interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}

答案 2 :(得分:-1)

在您的info.plist中,您需要设置UISupportedInterfaceOrientations的密钥,如下所示。:

enter image description here

除了shouldAutorotateToInterfaceOrientation:方法之外,此限制是我的应用仅在横向模式下运行。如果您支持左/右风景。您的方法应如下所示:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return  (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}