如何确定UINavigationController中工具栏的高度?

时间:2012-07-05 13:23:42

标签: iphone objective-c ios uiview uikit

我有一个带有UINavigationController提供的工具栏的视图。

当我处理UIKeyboardWillShowNotification时,我将整个屏幕向上滚动键盘的高度。 问题是当键盘显示时,底部工具栏没有,所以我需要向上滚动屏幕(keyboard.height - toolbar.height)。

但是如何获得工具栏的高度?

由于

2 个答案:

答案 0 :(得分:26)

您应该检查工具栏框架。

self.navigationController.toolbar.frame.size.height

当然,它只适用于你有导航控制器......

答案 1 :(得分:0)

我搜索了类似的解决方案,但在 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