代码之家  ›  专栏  ›  技术社区  ›  spring

为什么UIView(在iPad上)默认为纵向,即使在情节提要中设置为横向

  •  1
  • spring  · 技术社区  · 12 年前

    这个话题以前就提过( iPad modal view controller acting in portrait even though it's landscape )但我还没有找到一个明确的答案——所以我不知道这是否是重复的。

    在新的单视图项目中,我在xcode中将主视图设置为横向视图:

    enter image description here

    属性检查器确认这一点(以及视图在情节提要中的显示方式):

    enter image description here

    并且ViewController方向属性设置为横向:

    enter image description here

    然而,当我在“viewDidLoad”中检查视图框架时,它会报告纵向模式:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        CGRect theRect = self.view.frame;
    
        NSLog(@" frame %f  %f  %f  %f", theRect.origin.x,
              theRect.origin.y,
              theRect.size.width,
              theRect.size.height);
    }
    

    2012-08-26 16:42:45.045测试[2320:f803]电池0.000000 20.000000 768万1004.00万

    我还在shouldAutorotateToInterfaceOrientation中强制横向:

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

    我以前遇到过很多次这种情况,不得不将框架明确设置为横向,但我一直不明白为什么所有的故事板设置都没有效果。

    我是不是错过了一些基本的东西?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Pfitz    12 年前

    iOS中的每个应用程序最初都以纵向模式启动,即使您指定了支持的设备方向并在 shouldAutorotateToInterfaceOrientation: 。它将始终以纵向开始,如果设备,则将旋转为横向。用户可能看不到它,因为它太快了。 因此,您的应用程序必须能够通过 shouldAutorotateToInterfaceOrientation 即使你唯一支持的方向是横向的。

    因此,为了在开始后获得横向方向,您应该:

    • 在Xcodes接口生成器中设置支持的接口方向
    • 覆盖 应该自动旋转到界面方向 以下为:

    - (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)io {
        return (io == UIInterfaceOrientationLandscapeRight); 
    }
    
    • 给界面一个旋转的机会,然后进行视图配置

    关于您关于视图控制器横向Xcode配置的问题:请注意故事板中菜单的标题,上面写着: 模拟度量
    这意味着你在那里做的每一次修改都只是为了在故事板中模拟它。但是,除非您在代码中进行必要的修改以达到这种状态,否则它将无效。

        2
  •  0
  •   Ketan Sodvadiya    6 年前

    使用在视图控制器中添加以下代码 swift 4.2

    override var shouldAutorotate: Bool {
        return true
    }
    
    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return .landscapeRight
    }
    
    推荐文章