Swift - 使用导航栏和标签栏获取 viewController 的大小
Posted
技术标签:
【中文标题】Swift - 使用导航栏和标签栏获取 viewController 的大小【英文标题】:Swift - get size of viewController with navigation bar and tab bar 【发布时间】:2017-04-04 19:01:22 【问题描述】:我的 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”
【问题讨论】:
你得到了什么结果?你在哪里调用这个代码? 抱歉,我添加了更多信息。 【参考方案1】:解决方案是同时减去 statusBar 的高度。妈的。。
【讨论】:
【参考方案2】:获取此信息的最简单方法是使用布局指南。
let viewHeight = view.frame.height - (topLayoutGuide.length + bottomLayoutGuide.length)
但是,我认为您最好使用 Autolayout 来管理 scrollView 的高度,而不是直接设置。
【讨论】:
以上是关于Swift - 使用导航栏和标签栏获取 viewController 的大小的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 13 - swift OS 15 中的导航栏和状态栏文本颜色变化