【问题标题】:How to determine height of the toolbar in UINavigationController?如何确定 UINavigationController 中工具栏的高度?
【发布时间】:2012-07-05 21:53:54
【问题描述】:
我有一个由 UINavigationController 提供的带有工具栏的视图。
当我处理 UIKeyboardWillShowNotification 时,我将整个屏幕向上滚动键盘的高度。
问题是当键盘显示时,底部工具栏没有,所以我只需要向上滚动屏幕(keyboard.height - toolbar.height)。
但是如何获取工具栏的高度呢?
谢谢
【问题讨论】:
标签:
iphone
objective-c
ios
uiview
uikit
【解决方案1】:
我搜索了类似的解决方案,但在 iPhone X、XS 和未来型号等设备上遇到了问题。例如,在 iPhone XS 上高度为 49,但这不是正确的高度。经过一番研究,我找到了另一种检测工具栏高度的解决方案:
目标-C:
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height
CGFloat toolbarTop = self.navigationController.toolbar.frame.origin.y
CGFloat originalHeight = screenHeight - toolbarTop
斯威夫特 5:
let screenHeight = UIScreen.main.bounds.size.height
let toolbarTop = self.navigationController.toolbar.frame.origin.y
let originalHeight = screenHeight - toolbarTop
这将显示另一个号码。例如在 XS 上是 83
【解决方案2】:
您只需检查工具栏框架。
self.navigationController.toolbar.frame.size.height
当然,它只有在你有导航控制器的情况下才有效......