Swift - 使用导航栏和标签栏获取viewController的大小

问题描述:

我的viewController具有导航栏和标签栏。 我需要找出可用空间后减去导航和标签栏的大小。 我想:Swift - 使用导航栏和标签栏获取viewController的大小

let height = UIScreen.main.bounds.height - self.navigationController!.navigationBar.frame.size.height - self.tabBarController!.tabBar.frame.size.height 

但它不工作... 难道我做错了什么?

编辑: 抱歉,缺少信息。 我想在导航和选项卡栏之间嵌入UIScroll视图。该公式返回的高度大于可用空间。

titleView = UIScrollView(frame: CGRect(x: 0, y:0, width: titleWidth, height: height)) 

于titleview超越 “tabbar.y”

+0

你会得到什么结果?你在哪里调用这个代码? – dmorrow

+0

对不起,我添加了更多信息。 –

解决方法是也减去statusBar的高度。该死..

得到这个信息是使用布局指南的最简单方法。

let viewHeight = view.frame.height - (topLayoutGuide.length + bottomLayoutGuide.length)

不过,我认为你是好得多使用自动布局来管理你的滚动视图的高度,而不是直接设置在。

+0

它仍然超越了tabbar.y ... –