当前位置: 首页 > 知识库问答 >
问题:

如何让环球Xcode 5 app项目在景观定向上线?

祁建业
2023-03-14

我创建了一个“单视图应用程序”项目,并将所有选项设置为只启动和支持景观定向。但这款应用在启动时窗口是纵向的。

控制台输出显示application:DidFinishLaunchingWithOptions:之后的窗口是:

{{0, 0}, {768, 1024}}

我在ViewController的view中添加了一个标准的系统按钮,以说明应用程序是景观的,而不是肖像的,而是窗口是肖像的。

application:DidFinishLaunchingWithOptions:中,我将窗口染成红色。它显然不是在景观方向。

我已经试过了我所知道的所有招数:

1)info.plist包含UISupportedInterfaceOrientations键,该键具有:UIInterfaceOrientationLandomaPeleft和UIInterfaceOrientationLandomaPeright

2)info.plist包含UISUpportedInterfaceOrientations~iPad键,其中包含:UIInterfaceOrientationLandomaPeleft和UIInterfaceOrientationLandomaPeright

3)info.plist包含用于初始界面方向的UIInterfaceOrientation键:UIInterfaceOrientationLandomaperight

4)点击Xcode中的项目,然后取消选中所有的纵向选项,只选中了横向选项:

5)AppDelegate和ViewController都具有:

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

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

- (BOOL)shouldAutorotate {
    return YES;
}

6)AppDelegate具有:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

Xcode创建了两个故事板文件。我现在只在iPad上测试。一个是main_ipad.storyboard,它显示了一个在肖像中的视图控制器。但这只是一个模拟的接口度量。改成景观和预期一样没有效果。

CGRect screenBounds = [[UIScreen mainScreen] bounds]; // {{0, 0}, {768, 1024}}

共有1个答案

傅砚
2023-03-14

我以前也有过类似的问题,所以也许他们有关系...

我遇到了一个问题,因为我是在视图控制器的initwithnibname:bundle:中以编程方式创建视图的,无论出于什么原因,这样做都会使新视图处于纵向模式,而应用程序的其余部分则运行横向视图。

我找到了两个解决这个问题的方法。1)使用情节提要而不是编程方式创建视图,或者2)移动代码以从视图控制器的initWithNibName:bundle:方法创建视图,并将其放置在视图控制器的-ViewDidLoad:方法中,如下所示:

-(void)viewDidLoad {
    //Create your view programmatically
    UIView *view = [[UIView alloc] initWithFrame:self.view.frame];
    //Customize view
    [self.view addSubview:view];
}

这是我遇到的一个类似问题的解决方法。虽然我认识到我们程序员有很多方法可以使事情不按正确的方式工作,但我希望这就是答案!

 类似资料:
  • 我还将这些属性添加到main theme中 Android版本:10

  • 问题内容: 对于每个项目,我都可以在选择“运行为”时设置环境。如何设置运行时所有项目都将继承的全局环境? 问题答案: 您可以在启动Eclipse的脚本中设置环境变量。这些应该由所有子进程继承。 [编辑]创建一个包含以下内容的小脚本: 不确定Mac上的“ .exe”。只需将eclipse可执行文件的绝对路径放在下方的行中,它就可以正常工作。要使脚本可执行,请使用

  • 我是Spring Boot的新手,我的EclipseIDE中有Spring启动代码示例。 现在来运行这个项目。在项目中有一个“应用程序”类,我使用作为Java应用程序运行,然后它在给定的端口上运行。 但我希望它使用Eclipse的RunonServer选项运行,所以每当我尝试在服务器上运行它时,它都会给我404。 请给我任何想法来解决这个问题。 代码: 应用程序.属性 pom.xml 注意:当以J

  • 我需要定制: 背景未选中 选中文本颜色 文本颜色未选中

  • vue项目如何防止URL重定向 例如把 进行base64编码 拼接在地址后面,就能跳转到百度,如何设置白名单呢?是前端操作还是后端操作呀 希望大佬能帮忙解答一下

  • 我使用的是Jersey 1.12,并且有一个endpoint可能接收也可能不接收来自我无法控制的客户端的格式错误的标头(例如)。显然,bla格式错误,因为规范要求参数也要有值,即 我可以按照这里、这里和这里的建议编写一个过滤器来解决这个问题,但我想知道是否有一种方法可以让Jersey在我对其值不感兴趣的情况下忽略所有格式错误的报头?