【问题标题】:iPad Layout different only on launchiPad 布局仅在启动时有所不同
【发布时间】:2010-12-15 23:45:36
【问题描述】:

好的,我正在开发的 iPad 应用程序有一个有趣的问题。

当应用以纵向模式启动时,布局按预期工作。我旋转 iPad,旋转效果很好。

当应用程序以横向模式启动时,会出现额外的空白,并且布局无法按预期工作。但是当我将应用程序旋转为纵向时,它旋转得很好。当我将其旋转回横向时,它的布局也很好。

什么可能导致这个问题?有问题的视图控制器是一个包含 UINavigationController 的视图控制器(我必须添加一个标题)。我想知道它是否与 UINavigationController 有关。

【问题讨论】:

    标签: objective-c ipad ios orientation


    【解决方案1】:

    您的视图在启动时需要纵向模式。在您的视图控制器中,您需要让它知道寻找方向,并加载相应的视图。

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        if(((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
            (interfaceOrientation == UIInterfaceOrientationLandscapeRight))){
    
            self.view = landscape;
    
        }else if(((interfaceOrientation == UIInterfaceOrientationPortrait) || 
                  (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))){
    
            self.view = portrait;
        }
    
        return YES;
    }
    

    【讨论】:

    • 只有1个ViewController和view。在横向和纵向之间切换时,我没有加载另一个视图。
    • 然后您需要检查加载方向并相应地调整对象框架。一种更简单的方法是在您的 1 个控制器上拥有 2 个视图(在 IB 中设置)。 1 个视图称为横向和一个称为纵向,然后使用我添加到答案中的代码。在多个项目中对我来说都是一种魅力。
    【解决方案2】:

    好吧,我的应用程序中很奇怪的是,当Tab Controller将选项卡交换回到时髦的视图时,布局将变得正确。因此,我添加了一个 hack,以便在主窗口的 makeKeyAndVisible 之前的选项卡之间切换。

    我确实尝试了您的建议 WrightsCS。它不起作用的真正原因是因为我在页面的子视图中加载 UINavigationController 的视图,所以我并没有真正控制混乱的布局。导航控制器的顶部栏加载的比应有的低一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 2014-09-16
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多