【发布时间】:2016-07-07 23:21:27
【问题描述】:
如果我创建一个带有 1 个 uiviewcontroller 的简单应用程序,并将其嵌入导航栏中,则以下代码的输出
override func viewDidAppear(animated: Bool) {
print ("...app height is \(UIScreen.mainScreen().bounds.height)")
print ("...win height is \(self.view.frame.size.height)")
}
结果如下:
...app height is 1024.0
...win height is 980.0
我猜是有道理的,因为大小的差异说明了导航栏的高度,即 44 磅。
现在,我遇到了一个使用多个故事板的应用程序的问题,当我从一个故事板过渡到下一个故事板时,将返回相同的代码:
...app height is 1024.0
...win height is 1024.0
很奇怪,因为两个故事板都有一个嵌入在导航控制器中的 uiview。这会导致自动布局问题,因为没有考虑导航栏的大小。但是,如果我旋转视图或远离它,问题似乎会自行解决。
最后,问题是:如何确保正确计算导航栏,以便在故事板之间导航时不会出现布局问题?我试过强制 setNeedsDisplay() 和 setNeedsLayout() 无济于事。任何想法/想法/更正将不胜感激。
【问题讨论】:
标签: ios xcode swift2 autolayout storyboard