繁体   English   中英

iOS 7状态和导航栏在故事板中的高度不同于应用程序

[英]iOS 7 status and navigation bar different height in storyboard than in app

这是一个视图控制器,而不是模态显示,因此全屏。

在故事板中,“顶部布局指南”位于y:64 当状态栏为height:20时,我会期待这一点height:20 ,导航栏height:44

但是,当应用程序运行时,“顶部布局指南”为y:52 我不知道它是如何或为何失去12分。

当您使用Apple的导航控制器插入导航栏时,它将根据您的方向具有不同的高度。 例如,导航栏为纵向44点,横向为32点。 在你的情况下,我猜你的应用程序何时运行,它是横向的,因此“顶部布局指南”是y:52(32 + 20)。

请参阅此相关帖子: 带旋转的NavigationBar。

如果您尝试监视这些导航栏高度更改,例如:

-(void) viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height;
}

你会意识到,虽然app将方向改为横向模式,但navBarHeight的价值仍然是旧的( 44 )。 要解决这个问题,请使用内在大小:

-(void) viewDidLayoutSubviews
    {
        [super viewDidLayoutSubviews];
        CGFloat navBarHeight = self.navigationController.navigationBar.intrinsicContentSize.height;
    }

通常 ,您无法确定故事板(或笔尖)中对象的几何形状是最终的屏幕几何形状。 最终的屏幕几何形状不仅取决于设备方向,还取决于屏幕尺寸(例如,3.5英寸与4英寸iPhone)。

不幸的是,否则很容易想到。 例如,如果故事板正在纵向模拟4英寸iPhone,并且您在4英寸模拟器中以纵向运行应用程序,那么最终的屏幕几何将与故事板中的几何相同。

要在故事板中模拟不同的方向或屏幕尺寸,请访问视图控制器的“属性”检查器:

在此输入图像描述

如果你正在使用Xcode 5,那么在右下角的IB画布上还有一个“浮动”按钮,可以让你快速改变模拟的形状因子。

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM