[英]iOS: presentViewController in different storyboard is not showing navigation bar
[英]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.