0

我正在制作一个仅处于横向模式的应用程序,但我发现当我旋转设备时,应用程序会自动旋转到该方向。我在项目摘要中指定我只想要“Landscape Left”,然后在我放置的每个视图控制器中

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

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

4

3 回答 3

1

除了你所做的,而不是你的shouldAutorotateToInterfaceOrientation功能,使用以下

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
于 2012-06-14T18:35:15.483 回答
0

我想你误解了shouldAutorotateToInterfaceOrientation:它的用途。它不是问你“你支持什么方向?” ,它问你“你支持这个界面方向吗?” . 所以你的答案应该是YESor NO

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

例如,要支持所有方向:

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

...仅支持横向:

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

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return(interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
于 2012-06-14T18:47:05.417 回答
-1

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

在此处输入图像描述

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return  (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
于 2012-06-14T18:33:57.727 回答